我似乎对 C# 中的 Filestream 有一些问题。我正在尝试从 MSI 安装程序生成的 10mb 非常大的文本文件中读取最后一行。
我正在使用的代码是:
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”(空)字符。有谁知道是什么原因造成的?