我想在文本文件中记录二进制消息包,每行一条消息。之后,我将逐行阅读以解析有意义的信息。
我查看了binaryWriter类,发现了写入字节数组但无法找到writeLine方法的write方法。
请建议在文本文件中记录字节数组的好方法。
答案 0 :(得分:1)
将二进制文件写入文件时;你不是这样写的:
1011100111011
0110101010101
1000110100101
因为那些实际上不是二进制。这是二进制的文本(人类可读)表示。由文本表示的真实二进制文件是二进制文件的ASCII / Unicode编码。它很难读;如果你想要证明;只需在Notepad ++中打开一个PNG文件。
因此;拥有二进制文件的行结尾完全没有任何意义。因此,BinaryWriter上没有WriteLine
方法。
如果你想写出上面的二进制文件;你需要将其格式化为字符串,如下所示:
textWriter.WriteLine(Convert.ToString(value, 2));
现在,您可能可以只使用BinaryWriter
(这就是你编写byte []的方法),但不要指望它是人类可读的!然后,您将使用BinaryReader
反序列化您的书面文件。
答案 1 :(得分:0)
如果您确实想将二进制数据保存到文本文件中,但也有换行符,则可能需要使用Convert.ToBase64String
。这样可以确保您的二进制数据中没有任何换行符,这会无意中破坏该行。