问题描述
我在这个方法中得到一个空指针异常。 逐步调试并尝试几种不同的布局和文件写入方法,我开始明白我的问题似乎是我无法找到一种方法来正确地为 FileWriter 对象赋值:
public void scriviEccezionesuLog (String rigaDaScrivere){
try (FileWriter scrittoreFile = new FileWriter(fileLogUltimaEsecuzione,true)){ //Todo: null pointer exception
scrittoreFile.write("\n*ECCEZIONE: " + rigaDaScrivere);
} catch (IOException eccezionescrituraFile) {
System.out.println("Eccezione nella scrittura del file di log.");
}
}
fileLogUltimaEsecuzione File 对象定义为:
private File fileLogUltimaEsecuzione = new File(Environment.getExternalStorageDirectory(),"/ultimaEsecuzione.log");
在调试期间,File 对象似乎确实具有预期值,因此它不为空。 然而在 try-with-resources 之后:
FileWriter scrittoreFile = new FileWriter(fileLogUltimaEsecuzione,true)
scrittoreFile 保持为空。
注意: 在不同的 Java IDE 上尝试相同的代码时,我没有遇到这个问题(我尝试在 ApacheNetBeans 上运行它并且它完美无缺)。
编辑:
附加信息: 文件 ultimaEsecuzione.log 被实例化为类变量并在构造函数中创建如下:
try {
fileLogUltimaEsecuzione.createNewFile());
} catch (IOException ecccezioneIO) {
System.out.println("Eccezione IO nella creazione del file di log.");
}
但是,当我在文件应该创建后立即检查 .exists()
时,我得到“false”。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)