当我在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
方法中,就会发生这种情况,你应该这样做
这个问题可能与丢失的目录或访问权限有关,您得到的异常会使其变得明显,所以您所需要做的就是删除那行愚蠢的代码。