项目简介

使用一个线程实现文件拷贝,开启另一个线程计算并显示当前拷贝的进度

拷贝类

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo301 extends Thread{@Overridepublic void run() {Demo302 bs = new Demo302();bs.setDaemon(true);//设置当前线程为守护线程bs.start();try {sleep(1);copy();} catch (InterruptedException e) {e.printStackTrace();}}public void copy() {FileInputStream fis = null;FileOutputStream fos = null;try {File sourceFile = new File("D:\\Java\\note\\java基础\\7.20note\\video\\02_异常处理.avi");//待拷贝的文件fis = new FileInputStream(sourceFile);File targetDir = new File("C:\\Users\\Huaazai\\Desktop\\exp");//欲拷贝到的位置fos = new FileOutputStream(new File(targetDir, sourceFile.getName()));byte[] b = new byte[1014];int len = 0;try {while ((len = fis.read(b)) != -1) {fos.write(b, 0, len);}} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}finally{try {fos.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args) {new Demo301().run();}}

监控进度类

import java.io.File;
import java.text.DecimalFormat;public class Demo302 extends Thread{@Overridepublic void run() {File f1 = new File("C:\\Users\\Huaazai\\Desktop\\exp\\02_异常处理.avi");//已经拷贝了的文件File f2 = new File("D:\\Java\\note\\java基础\\7.20note\\video\\02_异常处理.avi");//待拷贝文件while(true){try {while(f1.length()<f2.length()){System.out.println("进度:"+ new DecimalFormat("00.0%").format(((double)f1.length()/(double)f2.length())));//大小相除获得进度,并设置进度格式sleep(1);if(f1.length()==f2.length()){System.out.println("复制完成!");}}} catch (InterruptedException e) {e.printStackTrace();}}}
}

代码运行结果

两个进程同时开始,同时结束,确保进度的正确性,由于对线程的学习还不够好,代码结果处有时候会出现一些问题,希望大佬们能给点建议?

实现文件拷贝并获取拷贝进度相关推荐

  1. linux拷贝文件夹时获取进度,实现本机拷贝显示进度的方法

    实现本机拷贝显示进度的方法: 方法一:scp命令(推荐) # scp -r /mntroot@127.0.0.1:/home(拷贝文件夹要加参数 -r,拷贝文件不需要) (显示拷贝速度.剩余时间.已拷 ...

  2. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表...

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  3. 【Android RTMP】音频数据采集编码 ( FAAC 头文件与静态库拷贝到 AS | CMakeList.txt 配置 FAAC | AudioRecord 音频采样 PCM 格式 )

    文章目录 安卓直播推流专栏博客总结 一. FAAC 头文件与静态库拷贝到 Android Studio 二. CMakeList.txt 构建脚本配置 三. Java 层 AudioRecord 音频 ...

  4. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...

  5. python检测文件夹中新增文件_python检测文件夹变化,并拷贝有更新的文件到对应目录的方法...

    检测文件夹,拷贝有更新的文件到对应目录 2016.5.19 亲测可用,若有借鉴请修改下文件路径: 学习python小一个月后写的这个功能,属于初学,若有大神路过,求代码优化~ newcopy.py: ...

  6. 使用父子两个进程拷贝同一个文件,父进程拷贝前一半,子进程拷贝后一半。

    #include <head.h> // 父子进程在宏观上同时执行,微观上实际是时间片轮询串行. //两个进程同时调用同一个拷贝函数进行拷贝 int get_file_len(const ...

  7. C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  8. (理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝

    为了快速构建项目,使用高性能框架是我的职责,但若不去深究底层的细节会让我失去对技术的热爱. 探究的过程是痛苦并激动的,痛苦在于完全理解甚至要十天半月甚至没有机会去应用,激动在于技术的相同性,新的框架不 ...

  9. linux 文件拷贝io,NIO拷贝文件真的比IO拷贝文件效率高?

    今天发现项目中有个FileUtils.copy的工具方法, 打开后发现是基于io的, 我给改成了基于NIO的, 突然疑虑NIO拷贝文件真的如其他人说的那样比IO效率高很多么? 以下是我的工具方法: / ...

最新文章

  1. controller接收json数据_答疑 | 前后端分离,如何接收json数据?
  2. PIE_SDK.NET功能表
  3. 你真的会写留言功能吗?
  4. python中的itertools_在python中使用itertools操作csv数据
  5. java并发编程之美-阅读记录3
  6. 案例:监听域对象的生命周期
  7. 在markdown (csdn)博客上输出 右下小标,右上小标。
  8. 编程之美(The beauty of programming)
  9. iOS 颜色渐变圆环
  10. Kali基于字典的无线破解
  11. IMO2017day1.1
  12. Java中WeakHashMap实现原理深究
  13. arcmap中将一个面图层中的多个面分割成独立的面
  14. Tecplot中用excel表格绘制xy图的一点理解
  15. Pdp11 simh 虚拟机 运行 unix V6
  16. 发明专利、实用新型专利——下载步骤
  17. maven同一个项目中,一个子模块引用另一个子模块的类的方法
  18. 【WSL2】ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemo
  19. c语言小游戏代码(c语言小游戏代码简单)
  20. VHDL行为描述方法实现与门

热门文章

  1. .netMVC企业微信网页授权+注册全局过滤器
  2. CATIA软件VBA二次开发:Excel文件中点坐标数据导入与生成点应用程序编写
  3. 如何利用Syncthing+蒲公英快速实现异地文件同步
  4. excel文件损坏修复绝招_Access文件频繁损坏的解决方法
  5. unity Inspector
  6. PS图层混合算法之五(饱和度,色相,颜色,亮度)
  7. 揭秘:游戏开发的薪资情况和发展前景!
  8. Python求离散序列导数
  9. 阿里云申请免费SSL证书
  10. OpenCV—直线拟合fitLine