我正在将一些C ++和Java代码移植到C#,当所有流的大小都小于1K时,将所有数据IO视为Streams。
鉴于流的缓冲区大小几乎在所有情况下都等于整个流,是否有任何理由我不应该简单地使用Byte []?
1K数据单元从流来源(网络或磁盘)但是,一旦读入内存,流访问就会有点随机。我认为直接字节[x]访问可能更有效(或逻辑)。
所以我的问题是,从安全性和体系结构的角度来看,直接使用Byte []数组而不是将其包装在流中通常是可以接受的吗?假设其他操作(例如编码的媒体流)不需要进一步的“流”访问。
答案 0 :(得分:1)
既然你说使用“有点随机”,我认为字节数组是最有意义的;这些本身适用于在给定位置查找,而流则需要您进行线性读取并重置位置。我不确定您可能会遇到哪些安全问题,但如果您将阵列传递给任何非托管资源,您可能需要考虑将其固定在内存中。