C#undo file.ReadLine()

时间:2011-12-08 14:15:03

标签: c# readline

我正在阅读带有

的巨大文本文件(1.8 GB)
     while ((j = file.ReadLine()) != null) {...}

但是,经过一些操作后,我自己陷入困境,当我想要“撤消”最后一个ReadLine时,所以下一个ReadLine实际上会读取完全相同的行。

有什么办法吗? :)

同样的工作会在没有任何阅读的情况下“查看下一个角色”,这样我就可以根据这个角色决定是否要阅读下一行。

示例:

    >1
    abc
    def
    >2
    ghi

用ReadLine()读取'def'后,我想知道下一行是否包含'>'字符或只有字母表。

非常感谢。

3 个答案:

答案 0 :(得分:4)

对于“查看下一个字符”,请使用Peek()方法:

http://msdn.microsoft.com/en-us/library/system.io.streamreader.peek(v=VS.100).aspx

答案 1 :(得分:3)

要查看下一个字符,您可以使用方法Peek

这将返回下一个字符而不更改文件中的位置。

答案 2 :(得分:2)

您实际需要的是finite state machine。您应该将状态设置为current is 'def', check for '>'并在下一次迭代中执行必要的操作,而不是试图向前看下一个输入(可能存在或可能不存在或有效)。