会敲键盘的肘子 2022-08-06 17:47 采纳率: 100%
浏览 21
已结题

.Net IO MemoryStream和BufferedStream的定义和区别

请教一下.Net IO MemoryStream和BufferedStream的定义和区别?

  • 写回答

2条回答 默认 最新

  • wanghui0380 2022-08-07 14:19
    关注

    buffer初始是定长的,
    官方说明

    重载
    BufferedStream(Stream)
    使用默认的缓冲区大小 4096 字节初始化 BufferedStream 类的新实例。
    BufferedStream(Stream, Int32)
    使用指定的缓冲区大小初始化 BufferedStream 类的新实例。

    其实打个比方,MemoryStream是流动的长江,不需要大小也没有大小,只要数据是不断流动(流进,流出)他是无限的

    Buffere 是杯子,有固定大小。

    buffer当初设计出来的目的就“舀水”的,比如每次从文件里读取1024字节这种,只是实际上基本没有人去使用他。人们更多的是直接 new byte[1024]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • kakaccys 2022-08-06 18:28
    关注

    顾名思义,MemoryStream是使用的内存,BufferedStream使用的是缓冲区,缓冲区是电脑里很小的一块儿内存,并且策略是先进先出,当缓冲区的内存空间满了再写,那用bufferedstream一般是因为文件过大,没办法全部加载到内存里,比如1个100g的视频,但是却只有20g内存的电脑,这种情况下,如果使用硬盘来读写又太慢,所以使用bufferedstream即利用好了内存,不至于内存直接爆,又增加了读写速度。

    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月15日
  • 已采纳回答 8月7日
  • 创建了问题 8月6日

悬赏问题

  • ¥30 c++ http服务器
  • ¥15 express连接mssql,每条额外附加了语句
  • ¥20 IQOO12如何有效ADB方法
  • ¥15 ios如何获取用户的订阅情况
  • ¥15 复杂表达式求值程序里的函数优先级问题
  • ¥15 求密码学的客成社记ji着用
  • ¥35 POI导入树状结构excle
  • ¥15 初学者c语言题目解答
  • ¥15 div editable中的光标问题
  • ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改