Java中复制文件的效率测试

项目中用到了图片的上传,对于上传过程中,图片的复制项目组用了两种方法,一种是以java的IO流,另外一种是用org.apache.commons.io.FileUtils的工具类,我测试了一下,单纯考虑文件的复制效率,apache的工具类的效率是普通io流读取的3倍。
  下面是测试源码

  1. public class ImageTest {
  2. public static void main(String[] args) throws IOException {
  3. IOTest();
  4. }
  5. public static void fileUtilsTest() throws IOException {
  6. // 趋近13毫秒后,保持这个数值
  7. File srcFile = new File("D:/1.apk");
  8. File destFile = new File("E:/2.apk");
  9. long sum = 0;
  10. for (int i = 0; i < 10; i++) {
  11. long startTime = System.currentTimeMillis();
  12. FileUtils.copyFile(srcFile, destFile);
  13. long endTime = System.currentTimeMillis();
  14. sum += (endTime - startTime);
  15. }
  16. long average = sum / 10;
  17. System.out.println("耗时" + average + "豪秒");
  18. }
  19. public static void IOTest() throws IOException {
  20. // 50毫秒
  21. File srcFile = new File("D:/1.apk");
  22. File destFile = new File("E:/2.apk");
  23. long sum = 0;
  24. for (int i = 0; i < 10; i++) {
  25. long startTime = System.currentTimeMillis();
  26. InputStream is = new FileInputStream(srcFile);
  27. // 把图片写入到上面设置的路径里
  28. OutputStream os = new FileOutputStream(destFile);
  29. byte[] buffer = new byte[400];
  30. int length = 0;
  31. while ((length = is.read(buffer)) > 0) {
  32. os.write(buffer, 0, length);
  33. }
  34. is.close();
  35. os.close();
  36. long endTime = System.currentTimeMillis();
  37. sum += (endTime - startTime);
  38. }
  39. long average = sum / 10;
  40. System.out.println("耗时" + average + "豪秒");
  41. }
  42. }
  43. 其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个Java交流群664389243,不管你是小白还是大牛欢迎入驻,大家一起交流成长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值