当然和你自己使用的文件大小有关,这里只是简单测试
代码如下:
package com.smile.two;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class CopyTextDemo {
public static void main(String[] args) throws Exception {
Long start = System.currentTimeMillis();
// method1("a.txt","copy1.txt");
// method2("a.txt","copy2.txt");
method3("a.txt","copy3.txt");
Long end = System.currentTimeMillis();
System.out.println("复制用了" + (end - start) + "毫秒");
}
//字符流 缓冲流一行一行读取
private static void method3(String srcFile, String destFile) throws Exception {
// 复制用了3毫秒
FileReader fr = new FileReader(srcFile);
FileWriter fw = new FileWriter(destFile);
BufferedReader br = new BufferedReader(fr);
BufferedWriter bw = new BufferedWriter(fw);
String line = null;
while ((line = br.readLine()) != null) {
bw.write(line);
bw.newLine();
bw.flush();
}
fw.close();
fr.close();
}
//字符流 字节数组读取
private static void method2(String srcFile, String destFile) throws Exception {
// 复制用了1毫秒
FileReader fr = new FileReader(srcFile);
FileWriter fw = new FileWriter(destFile);
char[] chs = new char[1024];
int len = 0;
while ((len = fr.read(chs)) != -1) {
fw.write(chs, 0, len);
}
fw.close();
fr.close();
}
//字符流 单字节读取
private static void method1(String srcFile, String destFile) throws Exception {
// 复制用了5毫秒
FileReader fr = new FileReader(srcFile);
FileWriter fw = new FileWriter(destFile);
int ch = 0;
while ((ch = fr.read()) != -1) {
fw.write(ch);
}
fw.close();
fr.close();
}
}