寻找使用NIO.2的Java File Util类

时间:2014-01-02 00:49:45

标签: java io guava nio apache-commons-io

根据官方Java教程,写入文件的最佳方法是: http://docs.oracle.com/javase/tutorial/essential/io/file.html#channels

在使用NIO.2创建自己的FileUtil.write(文件,文本)方法之前,我想知道某处是否已经存在这样的方法。

我检查了最新的apache commons io和guava的来源,但他们都只创建了一个FileOutputStream,将字符串转换为字节数组并写入。我很惊讶。

所以我有两个问题:

  1. 我认为NIO.2比FileOutputStream快。但由于公地io和番石榴不使用它们,我想知道这是否属实。问题是:NIO比FileOutputStream更快吗?
  2. 如果NIO.2更快,是否有使用它的库?

1 个答案:

答案 0 :(得分:0)

NIO应该更快,因为它可以使用直接缓冲区。来自ByteBuffer API:

给定直接字节缓冲区,Java虚拟机将尽最大努力直接执行本机I / O操作。也就是说,它将尝试避免在每次调用其中一个底层操作系统的本机I / O操作之前(或之后)将缓冲区的内容复制到(或从中)缓冲区。