5

我需要在阅读之前检查一行是否包含字符串,我想使用类似这样的 while 循环来执行此操作

    while(reader.ReadLine() != null)
    {
        array[i] = reader.ReadLine();
    }

这显然是行不通的,那我该怎么做这个选择呢?

4

4 回答 4

5

尝试使用以下Peek方法:

while (reader.Peek() >= 0)
{
    array[i] = reader.ReadLine();
}

文档: http: //msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspxhttp://msdn.microsoft.com/en-us/library/system.io.streamreader。偷看.aspx

于 2012-12-04T14:37:13.710 回答
4
String row;
while((row=reader.ReadLine())!=null){
    array[i]=row;
}

应该管用。

于 2012-12-04T14:34:33.993 回答
4

StreamReader.ReadLine从当前流中读取一行字符,读取器在底层 Stream 对象中的位置也提前了该方法能够读取的字符数。因此,如果您第二次调用此方法,您将从底层流中读取下一行。解决方案很简单 - 将行保存到局部变量。

string line;
while((line = reader.ReadLine()) != null)
{
   array[i] = line;
}
于 2012-12-04T14:34:35.110 回答
-1
while (!reader.EndOfStream)
{
    array[i] = reader.ReadLine();
}
于 2019-09-16T15:25:10.543 回答