行を読む前に、行に文字列が含まれているかどうかを確認する必要があります。次のような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。 peek.aspx
String row;
while((row=reader.ReadLine())!=null){
array[i]=row;
}
動作するはずです。
StreamReader.ReadLineは、現在のストリームから 1 行の文字を読み取ります。また、基になる Stream オブジェクト内のリーダーの位置は、メソッドが読み取ることができた文字数だけ進められます。したがって、このメソッドを 2 回目に呼び出すと、基になるストリームから次の行が読み取られます。解決策は簡単です - 行をローカル変数に保存します。
string line;
while((line = reader.ReadLine()) != null)
{
array[i] = line;
}
while (!reader.EndOfStream)
{
array[i] = reader.ReadLine();
}