我有一个应用程序会抛出此错误(仅在xlsx文件中发生):
java.lang.NullPointerException
at java.io.File.<init>(File.java:222)
at de.mpicbg.tds.core.ExcelLayout.openWorkbook(ExcelLayout.java:75)
方法'openWorkbook'如下所示:
private void openWorkbook() throws IOException {
File excelFile = new File(fileName);
timestamp = excelFile.lastModified();
// open excel file
if (fileName.endsWith(".xlsx")) {
InputStream excelStream = new BufferedInputStream(new FileInputStream(excelFile));
this.workbook = new XSSFWorkbook((excelStream));
} else {
this.workbook = new HSSFWorkbook(new POIFSFileSystem(new FileInputStream(excelFile)));
}
}
如果我在调试模式下执行所有操作,一切都会顺利进行,并且不会显示错误消息。我对此行为没有任何解释,也不知道如何修复它。 有人可以帮忙吗?
答案 0 :(得分:2)
错误消息显示您的fileName
为null
如果在调试时无法重现,可以在方法开头添加日志消息。
System.out.println("The fileName is `" + fileName+"`");
我建议您使用参数,而不是使用可能设置或未设置的字段。
private void openWorkbook(String fileName) throws IOException {
assert fileName != null;