本文在于测试使用缓存流是否可以提高流的读写效率
使用的计时工具是由Hutool提供的TimeInterval
测试内容是复制文件,文件大小为6499kb
实验组:
1、使用FileReader文件字符输入流读取文件内容,再使用FileWriter文件字符输出流写入,一个一个字节读取。
2、使用FileReader文件字符输入流读取文件内容,再使用FileWriter文件字符输出流写入,一个一个字节数组读取。
3、使用BufferReader字符缓冲流包装FileReader读取,使用BufferWriter字符缓冲流包装FileWriter写入,一个一个字节读取。
4、使用BufferReader字符缓冲流包装FileReader读取,使用BufferWriter字符缓冲流包装FileWriter写入,一个一个字节数组读取。
组一:
代码:
点击查看代码
package kaifa.kingdee;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
TimeInterval timer = DateUtil.timer();
FileReader fr = new FileReader("D:\\TestOne.java");
FileWriter fw = new FileWriter("D:\\Test.txt");
int len = 0;
while((len = fr.read()) != -1){
fw.write(len);
}
//由于调用了底层资源,所以需要close(资源是在硬盘中)
fw.flush();
fr.close();
fw.close();
System.out.println("花费了"+timer.interval()+"ms");
}
}
点击查看代码
package kaifa.kingdee;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test2 {
public static void main(String[] args) throws IOException {
TimeInterval timer = DateUtil.timer();
FileReader fr = new FileReader("D:\\TestOne.java");
FileWriter fw = new FileWriter("D:\\Test.txt");
char[] a = new char[1024];
int len = 0;
while((len = fr.read(a)) != -1){
fw.write(a);
}
//由于调用了底层资源,所以需要close(资源是在硬盘中)
fw.flush();
fr.close();
fw.close();
System.out.println("花费了"+timer.interval()+"ms");
}
}
点击查看代码
package kaifa.kingdee;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import java.io.*;
public class Test2 {
public static void main(String[] args) throws IOException {
TimeInterval timer = DateUtil.timer();
FileReader fr = new FileReader("D:\\TestOne.java");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("D:\\Test.txt");
BufferedWriter bw = new BufferedWriter(fw);
int len = 0;
while(( len = br.read() ) != -1){
bw.write(len);
}
//由于调用了底层资源,所以需要close(资源是在硬盘中)
fw.flush();
fr.close();
fw.close();
System.out.println("花费了"+timer.interval()+"ms");
}
}
点击查看代码
package kaifa.kingdee;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import java.io.*;
public class Test2 {
public static void main(String[] args) throws IOException {
TimeInterval timer = DateUtil.timer();
FileReader fr = new FileReader("D:\\TestOne.java");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("D:\\Test.txt");
BufferedWriter bw = new BufferedWriter(fw);
char[] a = new char[1024];
int len = 0;
while(( len = br.read(a) ) != -1){
bw.write(a);
}
//由于调用了底层资源,所以需要close(资源是在硬盘中)
fw.flush();
fr.close();
fw.close();
System.out.println("花费了"+timer.interval()+"ms");
}
}