学习java IO模块写的一个测试用例
Demo中有4个方法,在main方法中分别调用即可
在测试前请替换 源文件目录
和目标文件目录
package com.IOstream;
import java.io.*;
/**
* 字节流Demo 四种复制文件方式速度对比
* 方式1:字节流每次读取一个字节
* 方式2:字节流每次读取一个字节数组
* 方式3:字节缓冲流每次读取一个字节
* 方式2:字节缓冲流每次读取一个字节数组
*
*/
package com.IOstream;
import java.io.*;
/**
* 字节流Demo 四种复制文件方式速度对比
* 方式1:字节流每次读取一个字节
* 方式2:字节流每次读取一个字节数组
* 方式3:字节缓冲流每次读取一个字节
* 方式2:字节缓冲流每次读取一个字节数组
*/
public class IODemo02 {
static final String filePath1 = "源文件路径";
static final String filePath2 = "目标文件路径";
public static void main(String[] args) throws IOException {
// 记录开始时间
long startTime = System.currentTimeMillis();
//copyFlies1(); 耗时 134931毫秒
//copyFlies2(); 耗时 205毫秒
//copyFlies3(); 耗时 346毫秒
//copyFlies4(); 耗时 47毫秒
// 记录结束时间
long endTime = System.currentTimeMillis();
System.out.println("共耗时:" + (endTime - startTime) + "毫秒");
}
private static void copyFlies1() throws IOException {
FileInputStream fis = new FileInputStream(filePath1);
FileOutputStream fos = new FileOutputStream(filePath2);
int b;
while ((b = fis.read()) != -1) {
fos.write(b);
}
// 关闭字节流,释放系统资源
fis.close();
fos.close();
}
private static void copyFlies2() throws IOException {
FileInputStream fis = new FileInputStream(filePath1);
FileOutputStream fos = new FileOutputStream(filePath2);
byte[] bytes = new byte[1024];
int len;
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
// 关闭字节流,释放系统资源
fis.close();
fos.close();
}
private static void copyFlies3() throws IOException {
FileInputStream fis = new FileInputStream(filePath1);
BufferedInputStream fbis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(filePath2);
BufferedOutputStream fbos = new BufferedOutputStream(fos);
int b;
while ((b = fbis.read()) != -1) {
fbos.write(b);
}
// 关闭字节缓冲流和字节流,释放系统资源
fbis.close();
fbos.close();
fis.close();
fos.close();
}
private static void copyFlies4() throws IOException {
FileInputStream fis = new FileInputStream(filePath1);
BufferedInputStream fbis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(filePath2);
BufferedOutputStream fbos = new BufferedOutputStream(fos);
byte[] bytes = new byte[1024];
int len;
while ((len = fbis.read(bytes)) != -1) {
fbos.write(bytes, 0, len);
}
// 关闭字节流,释放系统资源
fis.close();
fos.close();
}
}