在C#中创建二进制文件的正确方法

时间:2014-03-30 07:39:43

标签: c# binarywriter

我正在使用以下代码创建Binary文件。

var a = new[]
{
    "C50-12-25",
    "C50-12-20"
};

using (var bw = new BinaryWriter(File.Open("file.bin", FileMode.Create)))
{
    foreach (var i in a)
    {
        bw.Write(i);
    }
}

我打开了文件,但是我没有看到像这样的图片,我一直以为Binary文件看起来像。

http://www.dotnetperls.com/binary.png

我实际上能够阅读我写的全文。

C50-12-25   C50-12-20

这是这样吗?我对此完全陌生,所以任何指导我正确方向的帮助对我来说都很重要。

1 个答案:

答案 0 :(得分:3)

您使用的Write重载:BinaryWriter.Write(String),使用编码写出您提供给文件的字符串。

看起来您希望将这些字符串转换为二进制数据,方法是将它们解码为十六进制值...除非它们看起来不像十六进制值,因为它们不会成为2组。无论如何,此过程记录在此处(How can I convert a hex string to a byte array?)。

请注意"图片"你发布的是十六进制编辑器。您没有在帖子中描述如何打开文件;如果您在记事本或类似的编辑器中打开文件,那么您将始终返回打印字符,而不是文件内容的十六进制表示。