转载:http://www.seohim.com/mylife/61.html
原理:BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再 8k。 ;
; 而直接读物理流,是按字节来读。 ;
; 对物理流的每次读取,都有IO操作。IO操作是最耗费时间的。 ; ; ;
; BufferedReader就是减少了大量IO操作,而为你节省了时间。 ;
; ; 简单的说,一次IO操作,读取一个字节也是读取,读取8k个字节也是读取,两者花费时间相差不多。而一次IO的来回操作却要耗费大量时间。 ;
; 好比是一辆大型汽车(设装100人),要去车站接人到公司,接一个人也是接,接100个人也是接,而时间一样。显然,接100个人最划算。
; 物理流就是一次一个字节(一个人) ;
; Buffered就是一次8k个字节(100个人) ;
; 对于读取定长字节文件,当然BufferedReader更快了!
import java.io.*;
public class Test11 {
; ; ; private static BufferedReader br = null;
; ; ; private static File file = null;
; ; ; private static BufferedWriter bw = null;
; ; ; public static void main(String[] args) {
; ; ; ; ; ; ; String b = null;
; ; ; ; ; ; ; file = new File(“D:斜杠斜杠abc.txt“);
; ; ; ; ; ; ; if (!file.exists() != false) {
; ; ; ; ; ; ; ; ; ; ; try {
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; file.createNewFile();
; ; ; ; ; ; ; ; ; ; ; ; ; ;
; ; ; ; ; ; ; ; ; ; ; } catch (IOException e) {
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; e.printStackTrace();
; ; ; ; ; ; ; ; ; ; ; }
; ; ; ; ; ; ; ; ; }
; ; ; ; ; ; ; ; try {
; ; ; ; ; ; ; ; ; ; ; bw = new BufferedWriter(new FileWriter(file));
; ; ; ; ; ; ; ; ; ; ; FileReader fr = new FileReader(“D:斜杠斜杠Log.txt“);
; ; ; ; ; ; ; ; ; ; ; br = new BufferedReader(fr);
; ; ; ; ; ; ; ; ; ; ; while ((b = br.readLine()) != null) {
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; System.out.println(b);
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; bw.write(b);//输出字符串
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; bw.newLine();//换行
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; bw.flush();
; ; ; ; ; ; ; ; ; ; ; }
; ; ; ; ; ; ; } catch (Exception e) {
; ; ; ; ; ; ; ; ; ; ; e.printStackTrace();
; ; ; ; ; ; ; }finally {
; ; ; ; ; ; ; ; ; ; ; try {
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; br.close();
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; //bw.close();
; ; ; ; ; ; ; ; ; ; ; } catch (IOException e) {
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; e.printStackTrace();
; ; ; ; ; ; ; ; ; ; ; }
; ; ; ; ; ; ; }
; ; ; }
}
示例:从键盘读入一系列字符串,排序后进行输出
import java.io.*;
import java.util.*;
public class Text {
; ;
; ; ; public static void main(String[] args)
; ; ; {
; ; String a[]=new String[5];
; ; InputStreamReader ir;
; ; BufferedReader in;
; ; ir=new InputStreamReader(System.in);
; ; in=new BufferedReader(ir);
; ; int i;
; ; try{for(i=0;i<;5;i )
; ; {System.out.print(“输入字符串“ (i 1) “:“);
; ; a[i]=new String();
; ; a[i]=in.readLine();
; ; }
; ; }catch (Exception e){
; ; }
; ; System.out.println(“排序前:“);
; ; for(i=0;i<;5;i )
; ; System.out.println(a[i]);
; ; Arrays.sort(a);
; ; System.out.println(“排序后:“);
; ; for(i=0;i<;5;i )
; ; System.out.println(a[i]);
; ; ; }
}
java BufferedReader例程
最新推荐文章于 2025-07-28 17:30:49 发布