java BufferedReader例程

    技术2022-05-20  41

    转载: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]); ; ; ; }}


    最新回复(0)