FileStream newFile = File.Create(@"D:\temp\888.txt");
BinaryWriter writer = new BinaryWriter(newFile);
string s = @"真的英雄";
writer.Write(s);
writer.Close();写入以后,888.txt文件结果显示为13个字节,我觉得怎么可能是13个字节,应该是16吧,老大?
BinaryWriter writer = new BinaryWriter(newFile);
string s = @"真的英雄";
writer.Write(s);
writer.Close();写入以后,888.txt文件结果显示为13个字节,我觉得怎么可能是13个字节,应该是16吧,老大?
解决方案 »
- 非常非常恶心的小程序!请高手帮忙!
- VS2008集成sp1的问题
- 关于oracle9i录入数据的问题C#.NET
- 如果检测网卡是否插了网线?
- 简单问题:求一Byte数组转字符串的函数
- 关于时间格式的一个问题,麻烦大家了!
- 我写了个简单的程序,是实现多语言的,用resgen和al命令编译资源文件,csc编译dll。运行后提示不能找到资源文件.....nant....
- 奇怪的问题.dropdownlist控件双击后产生的事件不是对应SELECTCHANGE吗?
- WPF,VS中为什么颜色工具不能使用
- 水晶报表如何动态绑定数据?急求代码?
- checkbox 的checkstate 或checked如何赋值?
- 怎样在控件名中使用变量?或者说通过一个变量查找和设置某个控件
BinaryWriter writer = new BinaryWriter(newFile);
string s = "真的英雄";
writer.Write(s);
writer.Close();---------------------
文本内容:真的英雄 多了一个 13 字节 (13 字节) 4k他为什么会多一个呢?
using (StreamWriter sw = new StreamWriter(@"D:\999.txt"))
{
sw.Write(s);
}
---------------------
文本内容:真的英雄 12 字节 4k
这个是对的。
应该是取系统有默认的编码方式
能看看你生成的文件内容吗
BinaryWriter writer = new BinaryWriter(newFile, Encoding.UTF8); string s = "真的英雄";
writer.Write(s);
writer.Close();这样还是不行。 13 字节 (13 字节) 4k
BinaryWriter writer = new BinaryWriter(newFile);
string s = @"真的英雄";
writer.Write(Encoding.Default.GetBytes(s));
writer.Close();
BinaryWriter.Write(String)
将有长度前缀的字符串按 BinaryWriter 的当前编码写入此流,并根据所使用的编码和写入流的特定字符,提升流的当前位置。
将有长度前缀的字符串按 BinaryWriter 的当前编码写入此流,并根据所使用的编码和写入流的特定字符,提升流的当前位置。 就是说它前面记录了字符长度,你可以试下把s = "AAA" ,写入后用UE打开,发现是 03 41 41 41 ....... .AAA
最开始03就是长度,所以多一个字节.
如果要不多这个字节,就吧string转为byte[]
看下MSDN上BinaryWriter的方法吧,不同类型处理不一样的,我也是才看的,以前也没注意写到文本还是用StreamWriter吧
默认是UTF-8编码,UTF8中文是3字节,你用DEFAULT的话,取计算机的设置,默认中文XP是ANSI,一个中文2个字节