java大文件复制最高效方法:多线程FileChannel |
您所在的位置:网站首页 › 文件复制的五种方法 › java大文件复制最高效方法:多线程FileChannel |
单线程下现在主流的复制方法有以下几种: 1、FileChannel 方法 2、FileInputStream 3、BufferedOutputStream 4、BufferedReader 5、FileReader 现取单线程下最快的方法FileChannel 来做多线程处理,看看速度怎么样。至于2345种就不赘述了,网上很多这几种方法的速度对比(可以参见:),在头条也看了几篇这方面的文章,感觉都不是太满意,都只是比较了单线程下各种方法的速度,然后得出FileChannel 最快,然后就推荐用FileChannel 。但是我一想, 多线程 是能提高文件复制速度的,于是就想FileChannel 配合多线程会是怎么呢,然后就有了这篇文章。 本文以一个998M大小的mp4文件来测试 1 单线程下FileChannel
测试方法:
复制完成时间:time=717ms 2 多线程FileChannel
测试方法:
结果: 开始时间:1495193355406 开始时间:1495193355406 开始时间:1495193355406 开始时间:1495193355406 Thread-1-结束时间:1495193355614-共用时:208ms Thread-3-结束时间:1495193355618-共用时:212ms Thread-2-结束时间:1495193355618-共用时:212ms Thread-0-结束时间:1495193355619-共用时:213ms 复制完成时间取最大结束时间与开始时间的差值 213ms,比单线程下的717ms提升的不只一点点。 综上所述,FileChannel 配合多线程来进行大文件的复制操作是最高效的(仅代表个人意见),各位大佬有更好的更高效的方法欢迎评论 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |