我正在使用大型多维字节数组(每个数组约 500mb,例如尺寸为 [8,8192,8192] 的数组),我想将它们读取并写入文件以进行存储。
我尝试使用 BinaryFormatter 但速度很慢(需要几分钟才能完成)。
我尝试使用 BinaryWriter,但它只接受一维数组。现在,在 C 中,将多维数组作为单维传递没有问题。在 C# 中,据我所知,我有两个选择:
- 为一维数组分配另一块内存,使用 for 循环将数据复制到其中,然后使用 BinaryWriter 将此数组写入文件
- 使用 for 循环,使用 BinaryWriter 将每个单独的字节写入文件
显然,如果我只是在任何地方使用 byte[] 而不是使用 myarray[i,j] 使用 myarray[i+j*myarray_width] 会更快,但这需要重写整个类,只是为了更容易工作一组 I/O 功能(保存/加载)。
一定有更好的办法。