使用Java复制文件及显示进度

最近在学Java,今天搞了一个复制文件的代码,主要是通过BufferedInputStream和BufferedOutputStream对文件进行复制

没什么技术含量,不过进过我的测试发现,对于1G以上的文件,复制时byte[]数组的大小越大越快,对于小于1G的文件,byte[]数组

的大小在5M左右最快,今本人测试,比Windows的复制最多要快40秒。好了,上代码

/**
使用Java复制文件及显示进度Author:ylqHUST
*/import java.io.*;
public class Copy
{public static void main(String[] args)throws Exception//异常直接抛出去了,自己玩玩就不处理了{FileInputStream fis=new FileInputStream("../BT5R3-KDE-32.iso");//要复制文件的路径FileOutputStream fos=new FileOutputStream("BT5R3-KDE-32.iso");//要把文件复制到哪里的路径BufferedInputStream bufis=new BufferedInputStream(fis);BufferedOutputStream bufos=new BufferedOutputStream(fos);byte[] by=new byte[1024*1024*150];//byte[]数组的大小,根据复制文件的大小可以调整,1G一下可以5M。1G以上150M,自己多试试int len;boolean flag=true;long f=System.nanoTime();double begin=bufis.available();while(flag){len=bufis.read(by);if(len==-1){flag=false;continue;}bufos.write(by,0,len);bufos.flush();System.out.print("\r                                         \r"+(1-bufis.available()/begin)*100+"%");//显示进度,如果文件过大//(2G以上,可能一开始会一直显示0.0%,因为算出的数据过小,丢失了,不过还是在复制,要等等}bufos.close();bufis.close();long e=System.nanoTime();System.out.println("\n用时"+(e-f)/1000000000+"秒");//显示总用时}
}//上面测试的一个3G左右的文件,用了120秒

转载注明出处

使用Java复制文件及显示进度相关推荐

  1. java复制文件_java多种文件复制方式以及效率比较

    1.背景 java复制文件的方式其实有很多种,可以分为 - 传统的字节流读写复制FileInputStream,FileOutputStream,BufferedInputStream,Buffere ...

  2. Android 下载文件并显示进度条

    2019独角兽企业重金招聘Python工程师标准>>> OK,上一篇文章讲了上传文件到服务端,并显示进度条 那么这边文章主要讲下载文件并显示进度条. 由于简单,所以只上传代码.还是需 ...

  3. java 复制文件_Java中复制文件的4种方法

    Java拷贝文件是一种非常常见的操作.但是java.io.File类没有任何快捷方法可以将文件从源复制到目标文件.在这里,我们将了解学习可以在java中复制文件的四种不同方法. 方法一:使用Strea ...

  4. eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决?

    eclipse 的Java Resource文件夹显示有错,可是文件夹下面的文件没有提示错误,这是怎么回事?怎么解决? 1.maven更新一下 2.或者把这个工程给删除了在创建一遍看看还有没有出 3. ...

  5. android下载通知栏,Android开发中实现下载文件通知栏显示进度条

    android开发中实现下载文件通知栏显示进度条. 1.使用asynctask异步任务实现,调用publishprogress()方法刷新进度来实现(已优化) public class myasync ...

  6. 实现在 .net 中使用 HttpClient 下载文件时显示进度

    在 .net framework 中,要实现下载文件并显示进度的话,最简单的做法是使用 WebClient 类.订阅 DownloadProgressChanged 事件就行了. 但是很可惜,WebC ...

  7. Java: 复制文件最快、高效率的方法

    Android中的文件复制--视频和图片复制 public class FileOpreateUtils {/*** * @param fromFile 被复制的文件* @param toFile 复 ...

  8. JavaWeb 使用ajax上传文件并显示进度条等上传信息

    文件上传在Web程序中是常用的功能,一般上传图片或者文件大小比较少的文件客户端不需要显示上传进度或文件上传的信息,如果是上传的文件比较大的时候,可以在客户端展示文件上传进度以及根据业务的需求显示文件上 ...

  9. 命令行中复制移动时显示进度条

    from:here "世间最痛苦的事莫过于等待",相信使用过Shell中cp或者mv命令操作大文件的朋友们都有这种感慨.要是能显示复制或者移动的进度,把无尽的等待变成有限的期待,那 ...

  10. 使用libcurl开源库和Duilib做的下载文件并显示进度条的小工具

    转载:http://blog.csdn.net/mfcing/article/details/43603525 转载:http://blog.csdn.net/infoworld/article/de ...

最新文章

  1. Tool/IDE之MinGW:MinGW(C++环境)的简介、安装、使用方法之详细攻略
  2. php 生成ai文件,php_Generator php 生成器
  3. 广告行业一些常用物料的尺寸
  4. TensorFlow4-常量和变量及TensorBoard使用
  5. 单片机外部中断详解及程序
  6. 《遥远的救世主》遵守客观规律(五)——文化属性
  7. http web服务器
  8. iOS 苹果登录(第三方登录)
  9. vs 2019生成类试图
  10. 电脑计算机睡眠时间设置为永不熄灭后,电脑仍会熄屏,重新唤醒时出现在登录界面怎么办?
  11. 请求成功但是报错: Uncaught (in promise)
  12. 建立数据思维的13个实用思维工具
  13. linux 打开三维stl文件,三维stl文件查看工具下载
  14. 阿里算法工程师在线编程题
  15. 利用QQ文件中转站给多个好友或群友传送文件
  16. excel php时间,excel时间函数
  17. 画数轴的步骤_中考数学知识点复习:画数轴的步骤
  18. wamp 不起启动一直是黄的
  19. 如何看待 30 岁转行做程序员这件事
  20. 简单5步,从0开始搭建你的第一款小程序

热门文章

  1. java网络编程小结(黑马程序员基础java总结)
  2. risksystem_《环境风险评价系统(RiskSystem)》1.1版
  3. 感染暴风一号u盘病毒的解决办法
  4. {windows}之向 暴风一号(病毒) 学习一个注册表小知识
  5. html载入hta文件,浅谈HTA(HTML Application)和病毒的关系
  6. element tree不刷新视图_架构蓝图软件架构 quot;4+1quot; 视图模型
  7. PMP试题 | 每日一练,快速提分 9.3
  8. cadence入门学习
  9. Android精品开源项目整理_V20140221(持续更新中..)
  10. kitti raw数据处理--跑vins