1551有人能帮帮我吗?哪里有问题啊
FileStream fs = new FileStream(@"E:/test/PlayerConfig.dat", FileMode.Create, FileAccess.Write);
MemoryStream ms = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(ms, tmp.data);
BinaryWriter bw = new BinaryWriter(fs, new UTF8Encoding());
bw.Write(ms.GetBuffer());
bw.Flush();
bw.Close();
fs.Close();
生成的文件不是UTF8格式
写的2进制数据,不需要管最后记事本打开的存储编码。最后反序列化也是2进制操作。
除非用StreamWriter之类的写入文本信息才会按照指定的编码生成文件。
dat是个二进制文件
首先它不是文件夹,没有什么文件夹是UTF8格式的
它也不是文本文件
你强行用记事本打开之后另存为时显示它默认是ANSI,那只是记事本默认的保存方式,跟它原来是什么类型没有一毛钱关系
只有当你写文件写入的是字符串,格式是txt,类型才有意义
好比excel文件才分03或07,你搞个txt非说是03的,那能对吗