关于BufferedStream类的问题

woshishe 2012-11-27 11:53:41
资料上说BufferedStream就是给另一流上的读写操作添加一个缓冲区,可以提高性能。可是我不是太理解是怎么样的一个过程,比如我初始化一个FileStream,用这个FileStream初始化一个BufferedStream,来读取文件的内容到一个字节数组,这个读取过程应该是将磁盘的信息读取到内存中吧,缓冲区应该也是在内存里吧,为什么就能提高性能?依我看来,中间加了个缓冲区,不是会降低读取的速度吗?请高手给解释一下...
...全文
79 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksq2010 2012-11-27
  • 打赏
  • 举报
回复
这样的话,就会使得当操作系统读取数据的时候,可以保证操作系统可以读取完我们的缓冲的数据,操作系统通过判断缓冲区的数据是否读取完毕,而进行读取读取,这样提高了操作系统的性能。如果不使用缓冲区,会造成操作系统不知道数据是否接收完整,而去拼命读取,就和你口渴了,想去喝水,却不知道水龙头那有没有水,但是如果放置一个杯子,让杯子去接水,当你看到水杯已经装满的时候,你再去喝 是一个道理。
ksq2010 2012-11-27
  • 打赏
  • 举报
回复
由于操作系统的多任务性,有时候我们读取的数据或者通过通信读取的数据不一定可以实时的立即处理,所以要建立缓冲区先暂存下来,等合适的实际再做处理。
C# 文件处理技术,包括file,fileinfo等,具体如下 第三章 文件处理技术 2 3-1 System.IO 命名空间 2 3-1-1 System.IO介绍 2 3-1-2 File的常用方法 4 3-1-3 Fileinfo的常用方法 5 3-1 Fileinfo的常用方法 5 1.案例学习:了解FileInfo的一些主要属性 6 2.案例学习:实现文件的复制 6 3.案例学习:获取文件基本信息 8 3-2 文件夹Directory的常用方法 10 1.案例学习:了解Directory的一些主要方法 10 2.案例学习:获取文件的基本信息 11 3-3 File的常用操作的静态方法练习 14 1.案例学习:简易文本编辑器的开发案例 15 3-4 文件流FileStream 17 1.FileStream文件流简介 17 2.FileStream文件流的创建 18 3-4 文件读写例子 20 3-3-1案例学习:文件流FileStream综合案例(一) 20 3-5 文件流FileStream综合案例 30 3-3-2 案例学习:文件流FileStream综合案例(二) 30 3-6 读写二进制文件 33 3-6-1 二进制文件读取器/编写器介绍 33 3-7 写二进制文件案例学习 35 1. 案例学习:写二进制文件案例——图片的存储与复制 35 3-8 读写内存流 39 3-8-1 读写内存流——MemoryStream 40 3-8-2 MemoryStream案例学习 41 3-8-3 读写缓存流——BufferedStream 43 3-9 读写缓存流 ——BufferedStream 43 3-9-1 读写缓存流 ——BufferedStream 43 3-9-2 BufferedStream案例学习 43 1.案例学习:通过缓冲区交换数据 43 3-6本章小结 45
1.1 什么是Stream? 1.2 什么是字节序列? 1.3 Stream的构造函数 1.4 Stream的重要属性及方法 1.5 Stream的示例 1.6 Stream异步读写 1.7 Stream 和其子图 2.1 为什么要介绍 TextReader? 2.2 TextReader的常用属性和方法 2.3 TextReader 示例 2.4 从StreamReader想到多态 2.5 简单介绍下Encoding 编码 2.6 StreamReader 的定义及作用 2.7 StreamReader 的常用方法属性 2.8 StreamReader示例 3.1 为何介绍TextWriter? 3.2 TextWriter的构造,常用属性和方法 3.3 IFormatProvider的简单介绍 3.4 如何理解StreamWriter? 3.5 StreamWriter属性 3.6 StreamWriter示例 4.1 如何去理解FileStream? 4.2 FileStream的重要性 4.3 FileStream常用构造函数(重要) 4.4 非托管参数SafeFileHandle简单介绍 4.5 FileStream常用属性介绍 4.6 FileStream常用方法介绍 4.7 FileStream示例1:*文件的新建和拷贝(主要演示文件同步和异步操作) 4.8 FileStream示例2:*实现文件本地分段上传 5.1 简单介绍一下MemoryStream 5.2 MemoryStream和FileStream的区别 5.3 通过部分源码深入了解下MemoryStream 5.4 分析MemorySteam最常见的OutOfMemory异常 5.5 MemoryStream 的构造 5.6 MemoryStream 的属性 5.7 MemoryStream 的方法 5.8 MemoryStream 简单示例 : XmlWriter中使用MemoryStream 5.9 MemoryStream 简单示例 :自定义一个处理图片的HttpHandler 6.1 简单介绍一下BufferedStream 6.2 如何理解缓冲区? 6.3 BufferedStream的优势 6.4 从BufferedStream 中学习装饰模式 6.5 如何理解装饰模式 6.6 再次理解下装饰模式在Stream中的作用 6.7 BufferedStream的构造 6.8 BufferedStream的属性 6.9 BufferedStream的方法 6.10 简单示例:利用socket 读取网页并保存在本地 7.1 NetworkStream的作用 7.2 简单介绍下TCP/IP 协议和相关层次 7.3 简单说明下 TCP和UDP的区别 7.4 简单介绍下套接字(Socket)的概念 7.5 简单介绍下TcpClient,TcpListener,IPEndPoint的作用 7.6 使用NetworkStream的注意事项和局限性 7.7 NetworkStream的构造 7.8 NetworkStream的属性 7.9 NetworkStream的方法 7.10 NetwrokStream的简单示例 7.11 创建一个客户端向服务端传输图片的小示例 版权归作者所有,仅供学习参考

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧