java BufferedReader例程

来源:互联网 发布:python语言程序设计pdf 编辑:程序博客网 时间:2024/06/07 00:33

转载:http://www.seohim.com/mylife/61.html
原理BufferedReader会一次性从物理流中读取8k(默认数值,可以设置)字节内容到内存,如果外界有请求,就会到这里存取,如果内存里没有才到物理流里再去读。即使读,也是再 8k。 
  而直接读物理流,是按字节来读。 ;
 ; 对物理流的每次读取,都有IO操作。IO操作是最耗费时间的。 ; ; ;
 ; BufferedReader就是减少了大量IO操作,而为你节省了时间。 ;
 ; ; 简单的说,一次IO操作,读取一个字节也是读取,读取8k个字节也是读取,两者花费时间相差不多。而一次IO的来回操作却要耗费大量时间。 ;
 ; 好比是一辆大型汽车(设装100人),要去车站接人到公司,接一个人也是接,接100个人也是接,而时间一样。显然,接100个人最划算。
 ; 物理流就是一次一个字节(一个人) ;
 ; Buffered就是一次8k个字节(100个人) ;
 ; 对于读取定长字节文件,当然BufferedReader更快了!
java <wbr> <wbr> <wbr>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]);
 ; ; ; }
}