本文介绍了的TextReader和PEEK下一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我读了一个文本文件中使用的数据的TextReader

I read a data from a text file using TextReader

TextReader reader = new StreamReader(stream);
string line;
while ((line = reader.ReadLine()) != null)
 {
   //.......
 }

有时候,我需要偷看下一行(或几下一行)的读者。

我该怎么办呢?

推荐答案

编辑:更新,允许任意数量的偷窥的:

Updated to allow any number of peeks:

public class PeekingStreamReader : StreamReader
{
    private Queue<string> _peeks;

    public PeekingStreamReader(Stream stream) : base(stream)
    {
        _peeks = new Queue<string>();   
    }

    public override string ReadLine()
    {
        if (_peeks.Count > 0)
        {
            var nextLine = _peeks.Dequeue();
            return nextLine;
        }
        return base.ReadLine();
    }

    public string PeekReadLine()
    {
        var nextLine = ReadLine();
        _peeks.Enqueue(nextLine);
        return nextLine;
    }
}

这篇关于的TextReader和PEEK下一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 22:40