Linux中的Java写入文件



当我在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) {
}

当我在linux上运行这个时,我已经将文件位置更改为/home/xx/hashan/,但我没有在linux上创建文件。

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

你错了;出现错误。

} catch (IOException e) {}

但实际上您特意编写代码来忽略它们!

不要那样做。把捕获的东西全部扔掉。如果出现了处理该异常所需的编译器错误,请将throws IOException添加到方法签名中。继续添加这些,直到错误消失(一旦你将throws IOException添加到main方法中,就会发生这种情况,你应该这样做

这个问题可能与丢失的目录或访问权限有关,您得到的异常会使其变得明显,所以您所需要做的就是删除那行愚蠢的代码。

最新更新