我需要在阅读之前检查一行是否包含字符串,我想使用类似这样的 while 循环来执行此操作
while(reader.ReadLine() != null)
{
array[i] = reader.ReadLine();
}
这显然是行不通的,那我该怎么做这个选择呢?
我需要在阅读之前检查一行是否包含字符串,我想使用类似这样的 while 循环来执行此操作
while(reader.ReadLine() != null)
{
array[i] = reader.ReadLine();
}
这显然是行不通的,那我该怎么做这个选择呢?
尝试使用以下Peek
方法:
while (reader.Peek() >= 0)
{
array[i] = reader.ReadLine();
}
文档: http: //msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx和http://msdn.microsoft.com/en-us/library/system.io.streamreader。偷看.aspx
String row;
while((row=reader.ReadLine())!=null){
array[i]=row;
}
应该管用。
StreamReader.ReadLine从当前流中读取一行字符,读取器在底层 Stream 对象中的位置也提前了该方法能够读取的字符数。因此,如果您第二次调用此方法,您将从底层流中读取下一行。解决方案很简单 - 将行保存到局部变量。
string line;
while((line = reader.ReadLine()) != null)
{
array[i] = line;
}
while (!reader.EndOfStream)
{
array[i] = reader.ReadLine();
}