处理流之缓冲流 buffered

处理流是包在别的流上面的流,相当于包在别的管道上面的管道。(节点流是直接怼在数据源上的流)

缓冲流:缓冲流相当于自带小桶,对读写数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。BufferedReader提供了一个一次读取一行的方法 readLine(),BufferedWriter提供了写入一个行分隔符的方法 newLine()

BufferedReader(Reader in) (Reader in ,int size)

BufferedWriter(Writer out) (Writer out,int size)

BufferedInputStream(InputStream in)  (InputStream in,int size)

BufferedOutputStream(OutputStream out) (OutputStream out,int size)

操作实例:

import java.io.*;

public class Test {
    public static void main(String[] args) {
        //写入100个数对应的字符
        try {
            BufferedWriter bwout = new BufferedWriter(new FileWriter("e:\\java\\aaa.txt"));
            int sum = 0;    
            for(int i = 32;i <= 99;i++) {
                //bwout.write("(" + Integer.toString(i) + ")");
                bwout.write(i);//实际上写进去的是一个个字符
                //bwout.write("   ");//32是一个空格符
                sum++;
                if (sum == 10) {
                    bwout.newLine();//BufferedWriter的newLine()方法    
                    sum = 0;    
                }
            }
            bwout.flush();//要flush一次才能将缓冲区输出
            bwout.close();
            //读取每一行并打印在屏幕上
            BufferedReader bread = new BufferedReader(new FileReader("e:\\java\\aaa.txt"));
            System.out.println(bread.read());
            bread.mark(500);//为什么mark(2)与mark(5)mark(5)运行效果是一样的?里面填的数值没有影响?
            for (int j = 0;j <= 4;j++) {
                System.out.print(bread.read() + " ");    
            }
            System.out.println(" ");
            bread.reset();
            for (int j = 0;j <= 4;j++) {
                System.out.print(bread.read() + " ");    
            }
            System.out.println(" ");
            System.out.println(bread.readLine());//从当前位置开始读到此句尾
            System.out.println(bread.readLine());//一行一行的读数据,从当前位置开始读到此句尾
            bread.close();
        }catch(IOException e){
            e.printStackTrace();    
        }
    }    
}

r1

r2

posted @ 2016-08-12 21:38  鱼虎纹鲨鱼  阅读(258)  评论(0编辑  收藏  举报