IO、字符流缓冲区

缓冲区出现提高了对数据的读写效率。

对应类:  BufferedReader   -- BufferedWriter

缓冲区结合流才可以使用,在流的基础上对流的功能进行了加强。

写入:BufferedWriter

package CoreJavaPractice;

import java.io.*;
public class Practice_2 {
    public static void main(String[] args) throws IOException {
        
        /*
          缓冲区的出现是为了提高流的操作效率而出现的。
          所以在创建缓冲区前,必须要有流对象。
          该缓冲区中提供了一个跨平台的换行符。newLine();
          */
        // 首先创建一个字符写入流对象。 开发一般都加缓冲区
        FileWriter fw = new FileWriter("buf.txt");
        
        //为了提高字符写入流的效率,加入了缓冲技术。
        //最终原理就是对象里面封装了数组,
        //只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
        BufferedWriter bufw = new BufferedWriter(fw);
        for(int x = 0; x<5; x++)
        {
            bufw.write("abcde"+x);
            bufw.newLine();
            bufw.flush();
        }
        
        
        //只要用到缓冲区,就要记得刷新。
        //bufw.flush();
        //其实关闭缓冲区,就是在关闭缓冲区中的流对象。不用关闭fw流 
        bufw.close();
        
    
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

读取: BufferedReader 

package CoreJavaPractice;

import java.io.*;
public class Practice_2 {
    public static void main(String[] args) throws IOException {
        
        /*
         该缓冲区提供了一个一次读一行的方法readLine() 方便于对于数据的获取
         当返回null时,表示读到文件末尾。
         */
        
        // 创建一个读取流对象和文件相关联
        FileReader fr = new FileReader("buf.txt");
        
        // 为了提高效率,加入缓冲技术, 将字符读取流对象作为参数传递给缓冲对象的构造函数
        BufferedReader bufr = new BufferedReader(fr);
        String line = null;
        while((line=bufr.readLine())!=null)
        {
            sop(line);
        }
        
    }
    public static void sop(Object obj)
    {
        System.out.println(obj);
    }
}

 

posted @ 2019-09-09 11:14  蚂蚁雅黑1010  阅读(132)  评论(0编辑  收藏  举报