我发现c#在操作文件中一些不可显示的字符时可能会出现错误。比如
我创建c:\test.txt,用ultra edit直接编辑十六进制F3 89 C4 01 00 53(对应的字符串是"髩? S "),其中C4 01就是不可显示的字符,然后保存。
之后我需要通过读写文件操作将内容保存到output.txt中,我是这么做的:
StreamReader sr = new StreamReadernew FileStream(@"C:\test.txt", FileMode.Open),System.Text.Encoding.Default);
string data=sr.ReadToEnd();
sr.Close();
FileStream sb = new FileStream(@"c:\output.txt",FileMode.Append);
StreamWriter sw = new StreamWriter(sb,System.Text.Encoding.Default);
sw.Write(data.ToString());
Console.Write(data);
sw.Close();
但是打开output.txt,查看十六进制发现内容变成了F3 89 3F 00 53
请问我该怎么做才能让这两个文件内容完全一致???
我创建c:\test.txt,用ultra edit直接编辑十六进制F3 89 C4 01 00 53(对应的字符串是"髩? S "),其中C4 01就是不可显示的字符,然后保存。
之后我需要通过读写文件操作将内容保存到output.txt中,我是这么做的:
StreamReader sr = new StreamReadernew FileStream(@"C:\test.txt", FileMode.Open),System.Text.Encoding.Default);
string data=sr.ReadToEnd();
sr.Close();
FileStream sb = new FileStream(@"c:\output.txt",FileMode.Append);
StreamWriter sw = new StreamWriter(sb,System.Text.Encoding.Default);
sw.Write(data.ToString());
Console.Write(data);
sw.Close();
但是打开output.txt,查看十六进制发现内容变成了F3 89 3F 00 53
请问我该怎么做才能让这两个文件内容完全一致???
--------------------------------------------------------------
程序,犹如人生。
byte [] array=new byte [stream .Length ];
stream.Read(array, 0, (int)stream.Length);
stream.Close();
stream = new FileStream(@"c:\output.txt", FileMode.Append);
stream.Write(array, 0, (int)array.Length);
stream.Flush();
stream.Close();这样写进去的和原来的一样..
已测试 ..