【问题标题】:How can I write a binary array to a file in C#?如何在 C# 中将二进制数组写入文件?
【发布时间】:2011-05-29 20:13:16
【问题描述】:

我必须将以下二进制数组写入文件:

byte[] data = new byte[] { 0x55, 0xAA, 0x02};

我想将确切的数据放入文件 (55,AA,02)。请告诉我该怎么做。

【问题讨论】:

标签: c# .net arrays file-io


【解决方案1】:

您可以使用Stream.Write(byte[] buffer) 重载。

而且更简单,

   System.IO.File.WriteAllBytes("fileName", data);

【讨论】:

  • 当我使用 aboe 函数时,文件中会显示一些不可读的字符。我希望准确显示数据。
  • 这是因为您正在编写不可打印的字符。 0x02 不是“可打印”字符代码。您想使用 十六进制编辑器 来查看您的输出文件并验证它是否准确地写入了数据。
  • @user209293 在以 ASCII/ANSI/UTF8 格式查看时,您的数据包含不可打印的代码。所以你必须更精确地得到你想要的结果。目前您的 cmets 与问题中的要求相矛盾。
【解决方案2】:

您可以使用File.WriteAllBytes(string path, byte[] bytes)。

【讨论】:

  • 当我使用 aboe 函数时,文件中会显示一些不可读的字符。我希望数据准确显示
  • @user209293,使用十六进制编辑器。不要指望文本编辑器会向您显示不可打印的字符,例如 0x02。
  • 如果您不想将确切的数据写入文件,而是将字节值的字符串表示形式写入文件,也许您应该重新表述您的问题。
【解决方案3】:

你可以使用 Iirc

string content = BitConverter.ToString(data);

检索包含内容的字符串,然后将该字符串写入所需的文件。

【讨论】:

    【解决方案4】:

    请尝试以下方法:

    FileStream fs = new FileStream(Application.StartupPath + "\\data.bin", FileMode.Create);
    BinaryWriter bw = new BinaryWriter(fs);
    byte[] data = new byte[] { 0x55, 0xAA, 0x02 };
    bw.Write(data);
    bw.Close();
    fs.Close();
    

    【讨论】:

    • 在microsoft visual studio中打开输出文件,你会看到你想要什么二进制格式的结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多