org.apache.commons.io.fileutils的writeStringToFile没有调用flush

baiyujj001 2017-04-15 03:32:35
大家有没有用org.apache.commons.io.fileutils的writeStringToFile方法,看源码:
public static void writeStringToFile(final File file, final String data, final Charset encoding, final boolean
append) throws IOException {
OutputStream out = null;
try {
out = openOutputStream(file, append);
IOUtils.write(data, out, encoding);
out.close(); // don't swallow close Exception if copy completes normally
} finally {
IOUtils.closeQuietly(out);
}
}

居然没有调用out.flush();在一次使用中我发现怎么也写不进去,加上out.flush();以后就成功了。

难道是只有我才遇到过这种问题吗?请大神帮忙解答一下,原来的代码是不是有问题?
...全文
557 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiyujj001 2017-04-29
  • 打赏
  • 举报
回复
结了,很是奇怪,并不能再现出来写不进去的问题了。但是上次的事情的确存在...
moguobiao 2017-04-27
  • 打赏
  • 举报
回复
一般close()都会calls flush()。 我写个小程序试了下org.apache.commons.io.FileUtils.writeStringToFile(),没有问题。如果你的程序有问题,请把你的代码贴出来看看. 这个网站有源代码,你可以深入挖掘:http://atetric.com/atetric/javadoc/commons-io/commons-io/2.5/src-html/org/apache/commons/io/FileUtils.html#line.1977
baiyujj001 2017-04-19
  • 打赏
  • 举报
回复
代码调用是这样的: org.apache.commons.io.FileUtils.write() ->org.apache.commons.io.FileUtils.writeStringToFile(),原来的代码是这样: public static void writeStringToFile(final File file, final String data, final Charset encoding, final boolean append) throws IOException { OutputStream out = null; try { out = openOutputStream(file, append); IOUtils.write(data, out, encoding); out.close(); // don't swallow close Exception if copy completes normally } finally { IOUtils.closeQuietly(out); } } 如果在out.close之前不调用out.flush()的话,文件是写入不了的。 这面的代码是commons-io-2.5-src.tar.gz里解开的源代码,难道别人在用这个接口的时候,能正常保存文件吗?很是不解。所以发贴求证一下。
moguobiao 2017-04-16
  • 打赏
  • 举报
回复
把你的代码贴出来看看. > 在一次使用中我发现怎么也写不进去,加上out.flush();以后就成功了。
baiyujj001 2017-04-15
  • 打赏
  • 举报
回复
有大神不?帮帮忙啊。

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧