将数据(对象)转换为文件格式字节数组

本文关键字:格式 文件 字节 字节数 数组 转换 数据 对象 | 更新日期: 2023-09-27 18:36:10

我想将一些测量数据保存到一个文件中。为了在其他应用程序中使用该文件,我必须将数据带入特定的文件格式。我有一个包含以下信息的表格:

  • 抵消
  • 字节
  • 类型
  • 描述

对于标头的每个元素。

因此,我必须以这种格式转换对象的所有信息。有没有简单的方法可以做到这一点?制作一个大字节数组并将此信息填充到数组中是正确的方法吗?

将数据(对象)转换为文件格式字节数组

如果要转换数据并写入文件,只需转换并写入即可。这是最简单的方法。示例代码:

struct Data
{
    int offset;
    byte[] bytes;
    byte type;
    string description;
}
void WriteDataToStream(Stream outputStream, List<Data> data)
{
    using(var bw = new BinaryWriter(outputStream))
    {
        foreach(var d in data)
        {
            bw.Write(d.offset);
            bw.Write(d.bytes, 0, d.bytes.Length);
            bw.Write(d.type);
            bw.Write(d.description);
        }
    }
}

流可能FileStream。请注意,BinaryWriter将在 Dispose 关闭基流,但您可以显式转换数据并自行以字节数组的形式写入基流。


其他方式,您可以实现ISerealizable接口。我认为这将是最简单的。