【发布时间】:2009-11-15 14:02:47
【问题描述】:
我有一个 StreamReader,它会不时检查它是否有更多内容可以从简单的文本文件中读取。它使用 peek 属性。问题是,当我使用 peek 时,位置会改变,尽管不应该。
FileStream m_fsReader = new FileStream(
m_strDataFileName,
FileMode.OpenOrCreate,
FileAccess.Read,
FileShare.ReadWrite );
StreamReader m_SR = new StreamReader(m_fsReader);
Console.WriteLine("IfCanRead SR Position " + m_fsReader.Position +
" and Length " + m_fsReader.Length);
if (m_SR.Peek() == -1) {
Console.WriteLine("IfCanRead false 2 SR Position " +
m_fsReader.Position + " and Length " + m_fsReader.Length);
return false;
}
else {
Console.WriteLine("IfCanRead true 2 SR Position " +
m_fsReader.Position + " and Length " + m_fsReader.Length);
return true;
}
【问题讨论】:
-
发布您的相关代码,因为 Peek 不 消耗任何字节。这就是 Peek 的重点。
-
我假设您知道 File.ReadAllBytes 和其他类似方法,但它们不能在您的特定程序中使用...
标签: c# streamreader .net peek