朝阳市网站建设_网站建设公司_页面加载速度_seo优化
2026/1/17 2:29:00 网站建设 项目流程

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();}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询