Linux 中的 Java 写文件

Has*_*anR 0 java linux spring-boot

当我尝试使用windwos并成功写入文件并附加内容时,我需要编写文件并附加内容,但是当涉及到linux环境时,我看不到任何创建的文件,也没有错误或异常。

这就是我在 Windows 上写文件的方式

HashMap<String, Object> map = new Gson().fromJson(dynamicJson, HashMap.class);

String keys = map.keySet().stream().collect(Collectors.joining(", "));
String values = map.values().stream().map(obj -> 
String.valueOf(obj)).collect(Collectors.joining(", "));
   

   
File file = new File("D:\\report-temp.csv");



try (FileWriter fw = new FileWriter("D:\\report-temp.csv", true);
     BufferedWriter bw = new BufferedWriter(fw);
     PrintWriter out = new PrintWriter(bw)) {


    if (file.length() == 0) {
        out.println(keys);
        out.println(values);

    } else {
        out.println(values);
    }


} catch (IOException e) {

}
Run Code Online (Sandbox Code Playgroud)

当我在 linux 上运行它时,我已经更改了文件位置,/home/xx/hashan/但是我没有在 linux 上创建文件。

rzw*_*oot 6

我看不到任何创建的文件,也没有错误或异常。

你错了;有错误。

} catch (IOException e) {}

但你实际上是用你的方式编写代码来忽略它们!

不要那样做。完全摆脱那个陷阱。如果您随后收到需要处理该异常的编译器错误,请添加throws IOException到方法签名中。继续添加这些直到错误消失(一旦您添加throws IOException到您的main方法中就会发生这种情况,您应该这样做。

问题可能与缺少目录或访问权限有关,您获得的异常会很明显,因此您需要做的就是删除那行愚蠢的代码。