编写Java程序,使用 Java 的 I/O 流将 H:\eclipse.zip 文件拷贝至 E 盘下,重新命名为 eclipse 安装 .zip。
查看本章节
查看作业目录
需求说明:
使用 Java 的 I/O 流将 H:\eclipse.zip 文件拷贝至 E 盘下,重新命名为 eclipse 安装 .zip。在拷贝过程中,每隔2000 毫秒显示一次文件已经被拷贝的大小及剩余的大小,直至文件完成拷贝,提示用户文件已经拷贝完成

实现思路:
- 创建 InstantThread 类,该类需要继承 Thread 类
- 在 InstantThread 类中创建两个 File 类型的静态实例 readFile(被拷贝的文件)和 writeFile(拷贝后的文件)
- 在 InstantThread 类中定义 void copy(File readFile,File writeFile) 方法,完成文件的拷贝操作,参数readFile 表示要读取的文件,参数 writeFile 表示重新写入的新文件
- 重写 InstantThread 类的 run() 方法,该方法用于显示文件拷贝的进度。 在 run() 方法中调用 readFile 的 length() 方法以获取源文件的大小,并保存到 long 类型的变量 length 内
- 当变量 currentLength 的值大于等于 length 变量值时,结束循环
实现代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class InstantThread extends Thread{
final static File readFile = new File("D:\\1.rar");
final static File writeFile = new File("E:\\1.rar");
@Override
public void run() {
//被拷贝文件的大小
long length = readFile.length();
System.out.println("被拷贝的文件大小:"+length+"B");
while (true) {
try {
sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long currentLength = writeFile.length();
System.out.println("已拷贝:"+currentLength+"B");
System.out.println("剩余:"+(length - currentLength)+"B");
if (currentLength>=length) {
System.out.println("文件已经完成拷贝");
break;
}
}
}
public void copy(File in,File ot) throws IOException {
FileInputStream input = new FileInputStream(in);
FileOutputStream ouput = new FileOutputStream(ot);
int data = 0;
while ((data = input.read())!=-1) {
ouput.write(data);
}
input.close();
ouput.close();
}
public static void main(String[] args) {
InstantThread i = new InstantThread();
i.start();
try {
i.copy(readFile, writeFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}
编写Java程序,使用 Java 的 I/O 流将 H:\eclipse.zip 文件拷贝至 E 盘下,重新命名为 eclipse 安装 .zip。的更多相关文章
- 我的第一个Java程序和Java简介
public calss HelloWorld{ public static void main(String[] args){ System.out.println("Hello Worl ...
- java中把文件拷贝到指定目录下最简单几种方法
java中把文件拷贝到指定目录下最简单几种方法 String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...
- Android JNI编程(八)——体验AS2.2.2编写Jni程序、Java调C、C调Java函数、将C代码中的Log打印至Logcat
版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 不得不说在AS2.2以上的版本进行开发就一个字——爽,在2.0上使用jni出 ...
- 第一个java程序以及java的运行机制
课堂要点: 编写第一个java程序以及理解java的运行机制. 1.基本命令介绍: javac命令: 编译java文件得到.class字节码文件 -encoding 参数:指定编译的编码 java命令 ...
- 我的第7个java程序--把java web项目改为java project项目--mybatis
连接数据库需要 程序,连接字符串,查询语句 主程序->读取连接字符串->读取查询语句->把查询到的值赋值给映射对象->打印对象属性 java project的好处,不用做那么多 ...
- JAVA学习第四十七课 — IO流(一):文件的读写
输入流和输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流经常使用基类 字节流的抽象基类:InputStream,OutputStream 字符的抽象基类 ...
- 编写高质量代码:改善Java程序的151个建议 --[117~128]
编写高质量代码:改善Java程序的151个建议 --[117~128] Thread 不推荐覆写start方法 先看下Thread源码: public synchronized void start( ...
- Java编写串口程序
用Java编写串口程序一般都会用到这个 http://fizzed.com/oss/rxtx-for-java 根据电脑的情况下载 解压以后有安装文档 For a JDK installation: ...
- 一劳永逸Java环境配置,以及编写我的第一个Java程序
Java环境配置,以及编写我的第一个Java程序 配置步骤 1.下载jdk 2.安装步骤 3.配置环境 4.我的第一个Java程序 配置步骤 网上的教程有很多,方法也都不尽相同.今天我就分享一下我的配 ...
随机推荐
- 【♪♪♪】网易云音乐mp3真实地址
参考别人的博客,得到下面的地址,填上ID号即可,后缀的[.mp3]不用输入 http://music.163.com/song/media/outer/url?id= 例如 最终,合并地址为 http ...
- 转 android design library提供的TabLayout的用法
原文出处:http://chenfuduo.me/2015/07/30/TabLayout-of-design-support-library/ 在开发中,我们常常需要ViewPager结合Fragm ...
- OC-ARC,类扩展,block
总结 标号 主题 内容 一 autorelease autorelease基本概念/自动释放池/autorelease基本使用 二 autorelease注意事项 注意点/应用场景 三 ARC 什么是 ...
- 使用springboot配置和注入数据源属性的方法和步骤
/** 1.书写一个名为resources/application.properties的属性文件---->书写一个配置属性类,类名为: **/ 文件:application.propertie ...
- jstl中的foreach标签
<%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...
- 【Java】基本语法学习笔记
1.数组 *数组的创建 int[] array = {1,2,3,4,5}; 注意区别于C++ int a[] = (1)两种输出方法 public class number { public sta ...
- 【阿菜做实践】利用ganache-cli本地fork以太坊主链分叉
前言 Fork主网意思是模拟具有与主网相同的状态的网络,但它将作为本地开发网络工作. 这样你就可以与部署的协议进行交互,并在本地测试复杂的交互.不用担心分叉主网作为测试链会占很多内存.这些方法都不会将 ...
- 可扩展标记语言XML(淅淅沥沥的小雨)
XML简述 XML用于描述数据,是当前处理结构化文档信息的有力工具.与操作系统编程语言的开发平台无关,可以实现不同系统之间的数据交互. xml文件结构: 1 <?xml version=&quo ...
- centos7源码安装Nginx-1.6
目录 一.环境介绍 二.安装 三.使用验证 四.附录 编译参数详解 一.环境介绍 nginx的版本功能相差不大,具体支持可以查看官网的功能列表 环境信息: [nginx-server] 主机名:hos ...
- Linux 文件属性及详细操作
目录 Linux 文件属性 文件属性信息组成 文件属性概念说明 文件软硬链接说明 硬链接 软链接 补充知识 存储数据相关-inode/block inode: block: 读取文件原理图 Linux ...