java - Apache Commons 的 FileUtils.write 的性能 - Java

标签 java apache-commons

我已经浏览了javadoc,但找不到任何东西。它在内部缓冲数据吗? 如果是,由于没有close/flush操作,它如何确保所有数据都已写入。如果它不缓冲,每次调用时它都会进入磁盘吗?

http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#write(java.io.File, java.lang.CharSequence, java.nio.charset.Charset, boolean)

我在这里查看了源代码,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/

相关文章:

java - 一定尺寸范围内的范围?

java - 加密后解密不返回原始字节数组?

java - StringEscapeUtils 判断字符串是否被转义

java - 查找 Log4J 日志文件

java - 通过 Java lib Apache Commons 上传文件的简明示例

Java:寻找一种优雅的分割字符串的方法

java - OpenEntityManagerInViewFilter 并测试 EntityManager 是否存在

java - Log4j 和 ${HOME} 变量 - HOME 未按预期扩展

Java - 实现产生正态分布数字的随机 vector 生成器

java - Apache Lang3 StopWatch.split()的意义是什么?