单线程下现在主流的复制方法有以下几种:
1、FileChannel方法
2、FileInputStream
3、BufferedOutputStream
4、BufferedReader
5、FileReader
本文以一个998M大小的mp4文件来测试
1单线程下FileChannel测试方法:
复制完成时间:time=717ms
2多线程FileChannel测试方法:
结果:
开始时间:06
开始时间:06
开始时间:06
开始时间:06
Thread-1-结束时间:14-共用时:208ms
Thread-3-结束时间:18-共用时:212ms
Thread-2-结束时间:18-共用时:212ms
Thread-0-结束时间:19-共用时:213ms
复制完成时间取最大结束时间与开始时间的差值213ms,比单线程下的717ms提升的不只一点点。
综上所述,FileChannel配合多线程来进行大文件的复制操作是最高效的(仅代表个人意见),各位大佬有更好的更高效的方法欢迎评论





