0

ファイルから読み取るときにこのエラーが発生し、ファイルに空の行があり、空の行でループを停止したいのですが、このエラーが発生します。どうすればよいですか?

string[] delim = new string[] { "," };
bool eof=false;
int k=0;
do
{
   string[] linie =  sr.ReadLine().Split(delim, StringSplitOptions.None);

   if (String.IsNullOrWhiteSpace(linie[0]))
      eof = true;
   else
   {
      A[k] = double.Parse(linie[0]);
      l[k] = Convert.ToInt32(linie[1]);
      c[k] = Convert.ToInt32(linie[2]);
   }
   k++;
 }
 while (!eof);

エラーは次のとおりです: string[] linie = sr.ReadLine().Split(delim, StringSplitOptions.None);

4

2 に答える 2

0

ファイルの最後に到達すると、sr.ReadLine()が返されますnull。したがって、 を分割しようとするとnull、 が得られますNullReferenceException

分割を行う前に null をチェックする必要があります。

あなたの可能性を整理する別の方法は次のとおりです。

string line;
while ((line = sr.ReadLine()) != null)
{
}
于 2013-04-15T16:03:01.170 に答える