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

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

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

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

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

Buffere 是杯子,有固定大小。

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

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