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)

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

Paste_Image.png

总结:

  • 使用Files.copy()和MappedByteBuffer处理的复制速度很快
  • 注意MappedByteBuffer map(MapMode mode, long position, long size)中size最大为Integer.MAX_VALUE,也就是2G ,超过2G的文件就要就不能一次复制完,可使用循环解决这个问题
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 9,405评论 2 8
  • java nio Java的IO体系:旧IO新IO:nio,用ByteBuffer和FileChannel读写ni...
    则不达阅读 4,302评论 0 2
  • Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java I...
    JackChen1024阅读 12,239评论 1 143
  • 简书 占小狼转载请注明原创出处,谢谢! 前言 java io操作中通常采用BufferedReader,Buffe...
    美团Java阅读 69,407评论 19 156
  • 他三人将三个果各各受用。那八戒食肠大,口又大,一则是听见童子吃时,便觉馋虫拱动,却才见了果子,拿过来,张开口,骨碌...
    chi樂22阅读 3,379评论 0 0