个数组不同的是, 数组是把所有的数据都一同放在了内存里, 而stream则是顺序的/连续的处理数据, 要么是一次处理一个字节, 要么是一次处理特定大小(不能太大, 可管理的范围内)的数据....Read方法把stream的一块数据写入到数组, 返回接受到的字节数, 它总是小于等于count这个参数....对于不可寻址的Stream(例如加密Stream), 想知道它的长度只能是把它读完. 而且你要是想读取前一部分的话必须关闭stream, 然后再开始一个全新的stream才可以....在内存中压缩
有时候需要把整个压缩都放在内存里, 这就要用到MemoryStream:
byte[] data = new byte[1000]; // 对于空数组, 我们可以期待一个很好的压缩比率...这里第一个using走完的时候MemoryStream会被关闭, 所以只能使用ToArray方法来提取它的数据.