我想读取和写入大的原始卷文件(例如MRI扫描)的内容。这些文件只是一系列例如32 x 32 x 32浮点,因此它们很好地映射到1D阵列。我希望能够将二进制卷文件的内容读入例如一维数组中。浮动或ushort(取决于二进制文件的数据类型),并将数组导出回原始卷文件。在C#中读取/写入数组内容到二进制文件的最佳方式是什么?
用C#做到这一点的最好方法是什么?用BinaryReader/BinaryWriter一次读/写1个元素?用FileStream.Read将它们分段读入字节数组,然后在数组之间做一个System.Buffer.BlockCopy?写我自己的读者/作家?
编辑:看来这是不可能的> 2GB阵列工作,但问题仍然主张小阵列(大约256 MB左右)
如果他使用破碎的数组而不是纯粹的多维数组,他将不会遇到每个对象的限制。 – 2010-04-08 14:40:33
好吧,也许2 GB是不可行的,但我仍然希望以最好的方式读取和写入大量数据。我已经更新了相应的问题。 – Eric 2010-04-08 14:48:57