java 两个时间相差几周_Java最高效的文件拷贝方法

不知道初学Java的同学有没有这种感觉,就是当利用Java操作IO是总觉得战战兢兢的,总感觉哪里不妥,特玻璃心,担心崩溃。反正小编我在2003年第一次接触Java的时候就是这个感觉。但实际上java还是非常给力和鲁棒的,Java发展了这么长时间,一直长盛不衰也不是没道理的,今天我就把项目中碰到的一个小小问题展开一下,看看Java怎么拷贝效率最高。

实验环境:

1、 一个8GB的大文件

2、从E盘拷贝到D盘

直接操作系统拷贝粘贴耗时大约37秒左右(不是特别稳定,最慢的时候42秒,最快的时候32秒,我们就取个平均值)。

利用Java拷贝文件的方法主流就三种:

一、经典文件流拷贝

经典的文件拷贝方法,代码也不复杂,如下图所示:

92a517cd8e7e497acd89cfad0bde630f.png

经典文件流拷贝方法

二、利用Files.copy

这种方法最简单,就一句代码的事:

Files.copy(source, target);

三、利用NIO的Channel通道传输

438f1c5b9409b63fffffb1b1db091358.png

利用NIO的通道传输方法

三种方法实现都不麻烦,但是效率差别却挺大:

直接说结论:

方法一耗时82.887秒,方法二耗时64.168秒,方法三耗时42.077秒

高下立判,所以推荐使用方法三进行文件拷贝操作,基本上与直接在操作系统操作时间相差无几。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值