news 2026/5/30 19:45:26

3.8 BufferedStream

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3.8 BufferedStream

1.BufferedStream简介

2.BufferedStream示例


1.BufferedStream简介

BufferedStream是C# System.IO命名空间下的一个流包装类,它的核心作用是在内存中创建缓冲区,减少对磁盘的操作次数 从而提升IO性能 通俗比喻:直接读写底层流(比如磁盘文件)就像直接用手接水龙头的水,每次接一点点,要接很多次;而BufferedStream相当于先拿一 个杯子(缓冲区)接水,接满后再一次性倒到目标容器里,大大减少了操作次数(IO操作是耗时的物理操作,减少次数就能提升 性能)
:a.默认缓冲区的大小是4096字节 b.如果底层流本身已有缓冲(如FileStream默认开启缓冲),使用BufferedStream可能无法提升性能

2.BufferedStream示例

usingSystem;usingSystem.IO;usingSystem.Text;classBufferedStreamWriteDemo{staticvoidMain(){// 文件路径(可替换为你自己的路径)stringfilePath="test_buffered.txt";// 要写入的测试数据(模拟多次小批量写入)stringcontent="这是测试BufferedStream的内容,用于演示缓冲写入的效果。\n";byte[]data=Encoding.UTF8.GetBytes(content);// 使用using语句自动释放流资源(关键!避免内存泄漏和数据丢失)using(FileStreamfileStream=newFileStream(filePath,FileMode.Create,FileAccess.Write))// 包装FileStream,创建BufferedStream,自定义缓冲区大小为8192字节(8KB)using(BufferedStreambufferedStream=newBufferedStream(fileStream,8192)){// 模拟10次小批量写入(如果直接写FileStream,会触发10次磁盘IO;用缓冲流只会在缓冲区满/Flush/关闭时触发)for(inti=0;i<10;i++){// 写入数据到缓冲区(此时并未立即写入磁盘)bufferedStream.Write(data,0,data.Length);Console.WriteLine($"第{i+1}次写入缓冲区完成");}// 强制将缓冲区剩余数据写入底层流(可选,using结束时会自动Flush,但显式调用更安全)bufferedStream.Flush();Console.WriteLine("所有数据已写入文件");}Console.WriteLine("写入完成,按任意键退出...");Console.ReadKey();}}

usingSystem;usingSystem.IO;usingSystem.Text;classBufferedStreamReadDemo{staticvoidMain(){stringfilePath="test_buffered.txt";// 确保文件存在(复用上面写入的文件)if(!File.Exists(filePath)){Console.WriteLine("文件不存在,请先运行写入示例!");return;}using(FileStreamfileStream=newFileStream(filePath,FileMode.Open,FileAccess.Read))using(BufferedStreambufferedStream=newBufferedStream(fileStream)){// 定义读取缓冲区(每次读取1024字节)byte[]readBuffer=newbyte[1024];intbytesRead;StringBuilderresult=newStringBuilder();// 循环读取,直到返回0(表示流结束)while((bytesRead=bufferedStream.Read(readBuffer,0,readBuffer.Length))>0){// 将读取的字节转换为字符串stringchunk=Encoding.UTF8.GetString(readBuffer,0,bytesRead);result.Append(chunk);}// 输出读取结果Console.WriteLine("读取到的文件内容:");Console.WriteLine(result.ToString());}Console.WriteLine("读取完成,按任意键退出...");Console.ReadKey();}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 6:06:14

Qwen2.5与DeepSeek-V3对比评测:小参数模型推理效率实测

Qwen2.5与DeepSeek-V3对比评测&#xff1a;小参数模型推理效率实测 1. 背景与评测目标 随着大语言模型在边缘设备和低延迟场景中的广泛应用&#xff0c;小参数量模型的推理效率成为工程落地的关键考量因素。尽管千亿级模型在性能上表现卓越&#xff0c;但其高昂的部署成本和资…

作者头像 李华
网站建设 2026/5/20 22:51:59

MGeo开源贡献指南:如何参与代码改进与反馈

MGeo开源贡献指南&#xff1a;如何参与代码改进与反馈 1. 背景与项目价值 随着城市数字化进程的加速&#xff0c;地址数据在物流、地图服务、政务系统等场景中扮演着关键角色。然而&#xff0c;中文地址存在表述多样、缩写习惯差异、层级结构不统一等问题&#xff0c;导致不同…

作者头像 李华
网站建设 2026/5/28 8:44:59

通义千问2.5实战案例:跨境电商文案生成系统部署实操

通义千问2.5实战案例&#xff1a;跨境电商文案生成系统部署实操 1. 背景与业务需求 随着全球电商市场的持续扩张&#xff0c;跨境电商平台对多语言、高效率的内容生成能力提出了更高要求。传统人工撰写商品描述、广告语、营销邮件等方式已难以满足海量 SKU 和快速上新的节奏。…

作者头像 李华
网站建设 2026/5/28 8:45:20

CPU友好型语义相似度服务|GTE向量模型镜像深度应用

CPU友好型语义相似度服务&#xff5c;GTE向量模型镜像深度应用 1. 背景与应用场景 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;语义相似度计算是构建智能系统的核心能力之一。无论是问答系统、推荐引擎、文本去重&#xff0c;还是客服机器人中的意图匹配&…

作者头像 李华
网站建设 2026/5/30 2:28:10

小白也能懂:Whisper-large-v3语音识别5分钟快速上手

小白也能懂&#xff1a;Whisper-large-v3语音识别5分钟快速上手 引言&#xff1a;为什么你需要Whisper-large-v3&#xff1f; 在当今多语言、跨地域的沟通环境中&#xff0c;语音识别技术正从“能听清”向“能理解”快速演进。OpenAI推出的Whisper系列模型&#xff0c;尤其是…

作者头像 李华
网站建设 2026/5/23 18:54:14

AI应用降本增效:DeepSeek-R1-Distill-Qwen-1.5B企业部署案例

AI应用降本增效&#xff1a;DeepSeek-R1-Distill-Qwen-1.5B企业部署案例 1. 背景与技术选型动因 在当前AI大模型快速发展的背景下&#xff0c;企业对高效、低成本的本地化推理方案需求日益增长。尽管千亿参数级模型在性能上表现卓越&#xff0c;但其高昂的算力成本和部署门槛…

作者头像 李华