Java基础之IO流,字符流缓冲区

字符流的缓冲区:

1、缓冲区的出现提高了对数据的读写效率。
2、对应类:
   a)BufferedWriter
   b)BufferedReader
3、缓冲区要结合流才可以使用。
4、在流的基础上对流的功能进行了增强。

一、字符流的写缓冲区:

import java.io.*;
import java.util.*;
import java.text.*;

class BufferedWriterDemo
{
    /*
        缓冲区的出现是为了提高流的操作效率而出现的。
        所以在创建缓冲区之前,必须要先有流对象。
    
*/
    public static void main(String[] args) throws IOException,InterruptedException
    {
        //创建一个字符写入流对象
        FileWriter fw = new FileWriter("bufferedWriter.txt",false);
        
        /*
            为了提高字符写入流效率。
            加入了缓冲技术,只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
        
*/
        BufferedWriter bw = new BufferedWriter(fw);        
        for(int i=0;i<10;i++)
        {
            bw.write(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S E").format(new Date()));
            bw.newLine();
            Thread.sleep(1000);
            
            //只要用到缓冲区,就要记得刷新
            bw.flush();
        }
        
        //其实关闭缓冲区,就是在关闭缓冲区中的流对象,因为不再需要手动关闭流对象
        if(bw!=null) bw.close();
        /*if(fw!=null) fw.close();*/
    }
}

二、字符流的读缓冲区:

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