Java IOUtils.write创建新文件,但不';不写数据
使用IOUtils.write将字符串写入文件Java IOUtils.write创建新文件,但不';不写数据,java,Java,使用IOUtils.write将字符串写入文件 try { IOUtils.write("test", new FileWriter(configFile)); } catch (Exception e) { e.printStackTrace(); } 其中configfile是配置文件的位置(“./resources/config.json”) 这似乎删除了该文件,并将其替换为没有内容的文件 也不会引发任何异常。您需要关闭编写器,或者
try {
IOUtils.write("test", new FileWriter(configFile));
} catch (Exception e) {
e.printStackTrace();
}
其中configfile是配置文件的位置(“./resources/config.json”)
这似乎删除了该文件,并将其替换为没有内容的文件
也不会引发任何异常。您需要关闭编写器,或者使用try with resources。否则,可能无法将所有内容刷新到磁盘:
try (FileWriter fw = new FileWriter(configFile)) {
IOUtils.write("test", fw);
} catch (IOException e) {
e.printStackTrace();
}
请确保在使用后关闭流,否则数据可能不会写入文件
FileWriter fw=null;
try {
fw= new FileWriter(configFile);
IOUtils.write("test",fw);
}catch (Exception e) {
e.printStackTrace();
}finally
{
IOUtils.closeQuietly(fw);
}
请尝试以下代码:
FileWriter fw = null;
try {
fw = new FileWriter(configFile);
IOUtils.write("test", fw);
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fw != null)
fw.close();
}
我将提供使用IOUtils.closeQuietly(fw)方法的方法。在finally块中添加closequilley()只会确保关闭,例如,当刷新失败且try-block中未调用close时。是的,流的关闭应始终写入
finally
,这确保始终执行close()
。除了try
中的异常外,它还将确保close()
针对try
或catch
的意外返回或中断执行