下面的代码主要就是分别使用FileInputStream、BufferedInputStream来读取相同内容的两个TXT文件,计算其时间之差。
public class test{
public static void main(String args[]){
try {
long start = System.currentTimeMillis();
System.out.println("程序开始执行的时间为:"+start);
File fi = new File("E:/asd.txt");
FileInputStream fis = new FileInputStream(fi);
int c=fis.read();
while(c!=-1){
System.out.print((char)c);
c=fis.read();
}
long end = System.currentTimeMillis();
System.out.println("程序运行结束的时间为: "+end);
System.out.println("程序执行时间为:" + (end - start) + "毫秒");
start = System.currentTimeMillis();
System.out.println("程序开始执行的时间为:"+start);
File afi = new File("E:/asdasd.txt");
FileInputStream afis = new FileInputStream(afi);
BufferedInputStream bis = new BufferedInputStream(afis);
c=bis.read();
while(c!=-1){
System.out.print((char)c);
c=bis.read();
}
end = System.currentTimeMillis();
afis.close();
fis.close();
bis.close();
System.out.println("程序运行结束的时间为: "+end);
System.out.println("程序执行时间为:" + (end - start) + "毫秒");
} catch (Exception el) {
el.printStackTrace();
}
}
}
第一次测试时asd.txt与asdasd.txt的内容,大小为1KB。
abcdefghijklmnopqrstuvwxyz
运行结果:
程序开始执行的时间为:1369837963924
文件内容: abcdefghijklmnopqrstuvwxyz
程序运行结束的时间为: 1369837963926
程序执行时间为:2毫秒
程序开始执行的时间为:1369837963926
文件内容: abcdefghijklmnopqrstuvwxyz
程序运行结束的时间为: 1369837963927
程序执行时间为:1毫秒
这只是一小段内容,不能体现什么,第二次使用了一个98KB的小说来测试,内容过多就没有输出,结果如下:
程序开始执行的时间为:1369838163631
文件内容:
程序运行结束的时间为: 1369838164235
程序执行时间为:604毫秒
程序开始执行的时间为:1369838164236
文件内容:
程序运行结束的时间为: 1369838164239
程序执行时间为:3毫秒
结果可见其时间相差多少,BufferedInputStream提高的IO效率有多高,这次测试乃是无聊之作,若有什么问题,请指出。