gpt4 book ai didi

java - 在linux下用java写文件不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 05:26:08 25 4
gpt4 key购买 nike

我在 Windows 中工作的 java 代码工作得很好,但是当我尝试在 Linux 中运行它时却不起作用(即它没有创建文件,因此没有写入)...这些是我正在使用的函数:

    BufferedWriter writer =null;//
String directory= "folder/";
java.io.File directory1 = new File(directory+"resultado");
String directory2;
directory1.mkdirs();

directory2=directory+"resultado/";
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(directory2+"resultado.txt"), "utf-8"));
writer.write("something");
writer.newLine();
} catch (IOException ex) {
System.out.println("ERRORR!!!!");
ex.printStackTrace() ;
// report
} finally {
try {writer.close();} catch (Exception ex) {//ignore}
}
}

即使我有 catch IOException 来写“Error”,它也会给我错误

Exception in thread "main" java.lang.NullPointerException
at memoria.bosques.imprimirenarchivos(bosques.java:17281)
at memoria.bosques.main2(bosques.java:18096)
at memoria.bosques.main(bosques.java:18139)

目录的文件夹已创建,但似乎函数没有创建要在其上写入的文件...我该怎么办?

最佳答案

我建议您的 finally block 中的 writer 为 null,因为您之前遇到了异常,但您没有告诉我们。要么在关闭之前测试它是否为 null,要么使用 try-with-resources。

当您遇到异常时,不要只是打印出“ERROR!!!!”。没用的。打印异常。

当您调用像 mkdirs() 这样返回结果的方法时,不要忽略它。

关于java - 在linux下用java写文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31621715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com