如何在文本文件中逐行读写字节数组

时间:2014-11-20 17:29:13

标签: c# arrays

我想在文本文件中记录二进制消息包,每行一条消息。之后,我将逐行阅读以解析有意义的信息。

我查看了binaryWriter类,发现了写入字节数组但无法找到writeLine方法的write方法。

请建议在文本文件中记录字节数组的好方法。

2 个答案:

答案 0 :(得分:1)

将二进制文件写入文件时;你不是这样写的:

  

1011100111011

     

0110101010101

     

1000110100101

因为那些实际上不是二进制。这是二进制的文本(人类可读)表示。由文本表示的真实二进制文件是二进制文件的ASCII / Unicode编码。它很难读;如果你想要证明;只需在Notepad ++中打开一个PNG文件。

因此;拥有二进制文件的行结尾完全没有任何意义。因此,BinaryWriter上没有WriteLine方法。

如果你想写出上面的二进制文件;你需要将其格式化为字符串,如下所示:

textWriter.WriteLine(Convert.ToString(value, 2));

现在,您可能可以只使用BinaryWriter(这就是你编写byte []的方法),但不要指望它是人类可读的!然后,您将使用BinaryReader反序列化您的书面文件。

答案 1 :(得分:0)

如果您确实想将二进制数据保存到文本文件中,但也有换行符,则可能需要使用Convert.ToBase64String。这样可以确保您的二进制数据中没有任何换行符,这会无意中破坏该行。