import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Field;
/*
文件复制练习:一读一写
明确:
数据源:D:\sougou\SogouInput\readme.txt
数据的目的地:E:\readme.txt
文件复制的步骤:
1.创建一个字节输入流对象,构造方法中绑定要读取的数据源
2.创建一个字节输出流对象,构造方法中绑定要写入的目的地
3.使用字节输入流对象中的方法read读取文件
4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
5.释放资源
*/
public class Demo01CpoyFile {
public static void main(String[] args) throws IOException {
//获取毫秒,判断效率
long s = System.currentTimeMillis();//程序运行前毫秒值
//1.创建一个字节输入流对象,构造方法中绑定要读取的数据源
FileInputStream fis = new FileInputStream("D:\\QQ\\SogouInput\\SogouExe\\SogouSvc.exe");
//2.创建一个字节输出流对象,构造方法中绑定要写入的目的地
FileOutputStream fos = new FileOutputStream("E:\\SogouSvc.exe");
//3.使用字节输入流对象中的方法read读取文件
//一次读写一个字节写入一个字节的方式 速度较慢
// int len = 0;
// while ((len = fis.read()) != -1) {//判断读取到-1表示读取完毕
// //4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
// //将获取到的写入len中
// fos.write(len);
// }
/*
复制速度更快的方法:
使用数组缓冲读取多个字节,写入多个字节
*/
byte[] bytes = new byte[1024];
3.使用字节输入流对象中的方法read读取文件
int len = 0;
while ((len = fis.read()) != -1) {
//4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
fos.write(bytes,0,len);
}
//5.释放资源,先释放写,再释放读(如果写完了,肯定读取完毕)
fis.close();
fos.close();
long e = System.currentTimeMillis();//程序运行完毫秒值
System.out.println("文件复制用了" + (e - s) + "毫秒");
}
}
IDEA-IO流练习(文件复制)
最新推荐文章于 2023-01-05 16:48:44 发布