我似乎在C#的FileStream中遇到了一些问题。我正在尝试从一个非常大的文本文件(10MB),由MSI安装程序生成,中读取最后一行。
我使用的代码是:
string path = @"C:\uninstall.log";
byte[] buffer = new byte[100];
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
{
long len = fs.Length;
fs.Seek(-100, SeekOrigin.End);
fs.Read(buffer, 0, 100);
}
string foo = Encoding.UTF8.GetString(buffer);
Console.WriteLine("\"" + foo + "\"");
但输出结果类似于这样:
H E L L O W O R L D ! ! ! B L A H B L A H
显然,被读取的流中每隔一个字符就包含一个'\0'(空字符)。 有人知道是什么原因导致了这种情况吗?
UTF7
、UTF8
和UTF32
不同,UTF-16的属性被称为“Unicode”。 - Daniel Brückner