java 复制文件多种方法

Java 复制大文件方式(nio2 FileChannel 拷贝文件能力测试)
Java实现文件拷贝评测
JAVA Zero Copy

优先选择Path,MappedByteBuffer ,FileChannel,ByteBuffer

  • Files.copy(Path source, Path target, CopyOption... options)
  • FileChannel transferTo(long position, long count, WritableByteChannel target)
  • FileChannel transferFrom(ReadableByteChannel src, long position, long count)
  • MappedByteBuffer put(ByteBuffer src)

下图只是为了看下复制效率,写的有点乱

java 复制文件多种方法_第1张图片
Paste_Image.png

总结:

  • 使用Files.copy()和MappedByteBuffer处理的复制速度很快
  • 注意MappedByteBuffer map(MapMode mode, long position, long size)中size最大为Integer.MAX_VALUE,也就是2G ,超过2G的文件就要就不能一次复制完,可使用循环解决这个问题

你可能感兴趣的:(java 复制文件多种方法)