我有一个应用程序可以逐行读取一个巨大的文本文件(大约超过 100MB)。
由于应用程序读取文件需要很长时间,我想在其底部添加一个 StatusStripProgressBar,指示距离加载结束还剩多少时间。
我试图将文件长度与正在读取的字符串的长度进行比较,但没有得到相同的结果。我也尝试将字符串转换为字节,但它仍然不同,例如:
while (!sr.EndOfStream)
{
s = sr.ReadLine;
TotalStringSize += s.Length;
UTF8ToASCII += UTF8Encoding.ASCII.GetByteCount(s);
UTF8ToBigEndianUnicode += UTF8Encoding.BigEndianUnicode.GetByteCount(s);
UTF8ToDefault += UTF8Encoding.Default.GetByteCount(s);
UTF8ToUnicode += UTF8Encoding.Unicode.GetByteCount(s);
UTF8ToUTF32 += UTF8Encoding.UTF32.GetByteCount(s);
UTF8ToUTF7 += UTF8Encoding.UTF7.GetByteCount(s);
UTF7ToASCII = UTF7Encoding.ASCII.GetByteCount(s);
//
// ...
//
}
我得到的结果要么高于或低于System.IO.FileStream.Length
. 任何想法?
编辑:使用的框架是 .NET 2.0