c#用BinaryWriter写文件时的一个小坑
写入字符串时总会在内容开头一个乱码字符
正确写法:
string path = Application.dataPath;
string content = "我要写入的字符串内容";
using ( FileWriter write = new BinaryWriter( path ) )
{
byte[] data = Encoding.UTF8.GetBytes( content );
write.Write( data , 0 , data.Length );
}
有坑的写法:
string path = Application.dataPath;
string content = "我要写入的字符串内容";
using (FileWriter write = new BinaryWriter(path))
{
write.Write(content);
}
仔细看底层的write方法就会发现,他会自己在前面写一个带长度前缀的字符串,所以当读取该写入的文件内容时就会有问题了,谨此记录一下