我已经浏览了javadoc,但找不到任何东西。它在内部缓冲数据吗? 如果是,由于没有close/flush操作,它如何确保所有数据都已写入。如果它不缓冲,每次调用时它都会进入磁盘吗?
我在这里查看了源代码,http://grepcode.com/file/repo1.maven.org/maven2/commons-io/commons-io/2.4/org/apache/commons/io/FileUtils.java#FileUtils.openOutputStream%28java.io.File%2Cboolean%29而且它似乎没有做任何缓冲。它每次都会打开一个流。
最佳答案
从源码来看,创建了一个新的流,将数据写出,然后关闭流。
Here's the link to the source我曾经确定过这一点。最终,当您调用 write 时,会调用 writeStringToFile。
这是有道理的,因为它是一个不返回任何内容的静态方法。
因此,它不会在内部缓冲数据。每次调用write
时,数据都会写入文件中。
关于java - Apache Commons 的 FileUtils.write 的性能 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221057/