Получение исключения при чтении двух строк данных из текстового файла в C # - PullRequest
0 голосов
/ 27 июня 2018

Здравствуйте. Я читаю две строки данных из текстового файла в C #, и в конце файла я получаю сообщение об ошибке «Ссылка на объект не установлена ​​для экземпляра объекта». Я знаю, что эта ошибка из-за конца файла, и объекту присваивается нулевое значение. Но мне нужно избежать этой ошибки. Мой код в следующем формате:

try
{
    sting line;
    while ((line = file.ReadLine().Trim()) != null)
    {
        //do something
        if ((line2 = file.ReadLine().Trim()) != null)
        //do something
    }
}
catch(exception e)
{
    console.write(e.Message);
}

В конце файла, где он идет в исключении.

Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Используйте? оператор, например:

file.ReadLine()?.Trim()
0 голосов
/ 27 июня 2018

Проблема заключается в том, что код вызывает Trim() по результату ReadLine(), прежде чем проверять, является ли результат нулевым.

С Как: читать текстовые файлы по одной строке за раз (Visual C #) :

while((line = file.ReadLine()) != null)  
{
    // Do something with line
}

Также обратите внимание, что обычно лучше избегать повторного вызова ReadLine() в цикле.

...