BinaryReader in c# reads ' ' between all characters of a string
我正在尝试使用c#BinaryWriter和BinaryReader类编写和读取二进制文件。
当我在文件中存储一个字符串时,它正确地存储它,但是当我尝试读取它时,它返回一个字符串,该字符串在字符串中的每个替换位置都有' 0'字符。
这是代码:
1 2 3 4 5 6 7 8 9 10 11 | public void writeBinary(BinaryWriter bw) { bw.Write("Hello"); } public void readBinary(BinaryReader br) { BinaryReader br = new BinaryReader(fs); String s; s = br.ReadString(); } |
这里s得到值="H 0e 0l 0l 0o 0"。
在读取和写入文件时使用不同的编码。
在写入文件时使用的是UTF-16,因此每个字符最终都是16位字符代码,即两个字节。
在读取文件时,您使用的是UTF-8或某些8位编码,因此每个字节最终都会作为一个字符。
选择一种编码并用于读取和写入文件。