【发布时间】:2021-04-21 09:34:39
【问题描述】:
我知道在 SO 上有很多类似的问题。但他们都没有我想要的答案。
我需要将一个非常大的数组(大约 1 GiB 的存储空间)写入一个二进制文件。它由非常简单的结构组成(只有 4 个只读字节成员的结构)。
我能否将该数组一次性写入二进制文件/流而不将整个数组复制到字节数组中?我绑定到 .NET Standard 2.0,所以没有 MemoryMarshal 的帮助。
干杯, 乔治
【问题讨论】:
-
什么是“将结构数组写入二进制文件”?序列化?记录/转储(你有想要的格式)?该文件将如何使用?
-
序列化。我想将整个数组尽可能高效地写入二进制文件,例如BinaryWriter。
-
也许你只是在内存中使用二进制数组,而你在运行时通过指针获取结构?
-
只需使用第一个结构的数组创建第二个结构。
-
使用缓冲区分块写入数据。缓冲区不需要保存所有数据(例如,仅 1 Mb)。缓冲区太小可能会影响性能。
标签: c# arrays memory-management marshalling binaryfiles