【发布时间】:2009-06-18 19:30:50
【问题描述】:
我正在用 C# 将文本写入二进制文件,并看到写入字符串和字符数组之间写入的数量差异。我正在使用 System.IO.BinaryWriter 并在写入发生时观察 BinaryWriter.BaseStream.Length。这些是我的结果:
using(BinaryWriter bw = new BinaryWriter(File.Open(“data.dat”), Encoding.ASCII))
{
string value = “Foo”;
// Writes 4 bytes
bw.Write(value);
// Writes 3 bytes
bw.Write(value.ToCharArray());
}
我不明白为什么我只写 3 个 ASCII 字符时字符串重载会写 4 个字节。谁能解释一下?
【问题讨论】:
-
btw - 如果您只是想序列化您的数据,可以使用 API 来帮助解决这个问题 - 任何内置的序列化器,或者有一系列可用的 3rd 方序列化器。通常比编写大量自己的读/写代码更强大...
标签: c# string encoding file binaryfiles