示例测试总结:t1()最快,方案最优;
1、有buffer比没有buffer的更快
2、buffer放在中间层比放在外面的更快
3、按行或按块操作 比 按字节或字符操作更快(用Object流操作的速度 比 字节字符方式 更快)
4、缓冲区要结合流才可以使用,在流的基础上对流的功能进行了增强
package ThreadIO2_1.IO.buffer;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class BufferedStreamDemo {
public static void main(String[] args) {
try {
//t1();//运行速度最快
//t2();//最慢
//t3();//第二
} catch (Exception e) {
e.printStackTrace();
}
}
private static void t2() throws Exception {
long t1=System.currentTimeMillis();
DataInputStream din=new DataInputStream(new FileInputStream("b.txt"));
String str=null;
while((str=din.readLine())!=null){
System.out.println(str);
}
long t2=System.currentTimeMillis();
System.out.println("方式2运行时间(毫秒):"+(t2-t1));
}
private static void t1() throws Exception {
long t1=System.currentTimeMillis();
DataInputStream din=new DataInputStream(new BufferedInputStream(new FileInputStream("b.txt")));
String str=null;
while((str=din.readLine())!=null){
System.out.println(str);
}
long t2=System.currentTimeMillis();
System.out.println("方式1运行时间(毫秒):"+(t2-t1));
}
private static void t3() throws Exception {
long t1=System.currentTimeMillis();
BufferedInputStream bin=new BufferedInputStream(new DataInputStream(new FileInputStream("b.txt")));
byte[] buf=new byte[20];
int n=0;
while ((n = bin.read(buf)) != -1) {
System.out.println(new String(buf,0,n));
}
long t2 = System.currentTimeMillis();
System.out.println("方式3运行时间(毫秒):" + (t2 - t1));
}
}