Так что я получаю нулевой указатель на последней строке этого метода. Из всего, что я читал на других с этой проблемой, использование while ((lineIn = myReader.readLine()) != null)
должно останавливать файл, когда он ничего не оставил, но, похоже, это не так. Вместо этого я в конечном итоге поймал NPE. Я не могу понять, почему это так. Любой совет будет принят во внимание! В настоящее время я помогаю в решении этой проблемы, используя другое заявление catch (NullPointerException)
, но я не считаю, что это адекватное решение.Исключение Null Pointer в EOF
BufferedReader myReader;
try {
FileInputStream fileInStream = new FileInputStream(
fileLocation);
InputStreamReader fileInputStreamReader = new InputStreamReader(
fileInStream, "UTF-16");
myReader = new BufferedReader(fileInputStreamReader);
String lineIn = "";
// Read the next line until there aren't any left
while ((lineIn = myReader.readLine()) != null) {
//Do stuff with line
}
System.out.println("done");
// Close the file connections now that the read is done.
fileIn.close();
myReader.close();
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
e.printStackTrace();
}
Закройте считыватель в блоке finally: 'finally {if (fileIn! = Null) fileIn.close(); if (myReader! = null) myReader.close(); } ' – EpicPandaForce
Что вы делаете внутри' // Do stuff with line'? –
@ Zhuinden Закрытие 'fileInStream' достаточно. – m0skit0