以下是我正在使用的代码:
for (var i = 0; i < 100; i++)
{
var firstLine = sr.ReadLine();
var indexNumber = (firstLine.Length + 2) * sizeof(Char);
var byteNumber = System.Text.ASCIIEncoding.Unicode.GetByteCount(firstLine + Environment.NewLine);
var otherline = sr.ReadLine();
var otherline2 = sr.ReadLine();
var otherline3 = sr.ReadLine();
comparisonCollection.Add(new int[] { indexNumber, byteNumber });
fs.Seek(indexNumber, SeekOrigin.Begin);
var indexLine = sr.ReadLine();
sr.DiscardBufferedData();
fs.Seek(byteNumber, SeekOrigin.Begin);
var secondLine = sr.ReadLine();
sr.DiscardBufferedData();
}
indexNumber和byteNumber评估为相同的数字(在本例中为440)。 第一个Seek / Readline给出了文件中第二行的预期结果,但是第二个Seek / Readline(使用相同的参数)给了我一个空字符串。我想我一定是在误解某些事情的运作方式。任何人都能解释一下吗?