所以我目前在这个方法的最后一行得到一个空指针。从我在其他人看到的有关此问题的所有内容中,使用while ((lineIn = myReader.readLine()) != null)
应该在文件没有任何内容时停止,但似乎没有这样做。相反,我最终抓住了一个NPE。我无法弄明白为什么会这样。任何意见,将不胜感激!我目前使用另一个catch (NullPointerException)
声明来帮助解决这个问题,但我觉得这不是一个合适的解决方案。
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();
}
答案 0 :(得分:3)
永远不应该捕获空指针它应该被修复。您不希望它们传播到代码的其余部分。
还要确保关闭文件。添加finally块并关闭这些文件资源。这样,如果发现异常,您仍然会关闭文件。
答案 1 :(得分:0)
原来问题是我没有从以前的操作中正确关闭我的文件阅读器。谢谢你们。