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.aspxおよびhttp://msdn.microsoft.com/en-us/library/system.io.streamreader。 peek.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は、現在のストリームから 1 行の文字を読み取ります。また、基になる Stream オブジェクト内のリーダーの位置は、メソッドが読み取ることができた文字数だけ進められます。したがって、このメソッドを 2 回目に呼び出すと、基になるストリームから次の行が読み取られます。解決策は簡単です - 行をローカル変数に保存します。

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 に答える