Java学习笔记之IO流中的缓冲流

假如我们要读写的数据是分行的,那么每次读写都必须是一行一行地进行。但是由于字节流和字符流都是按顺序读写数据,所以这两种流无法满足我们的要求,因为我们不知道每一行的字节或者字符是多少。所以这时候就需要用到缓冲流了。

BufferedReader和BufferedWriter类创建的对象称作缓冲输入、输出流。二者的源和目的地必须是字符输入流和字符输出流。也就是说缓冲流和字符流是配合使用的。

下面我们就用缓冲流向创建好的空白文档中写入四行菜名,然后再用缓冲流读出来:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Test {

    public static void main(String[] args) {
        String[] content = {"西红柿炒鸡蛋","小葱拌豆腐","糖醋鲤鱼","红烧排骨"};
        File file = new File("C:\\Users\\lenovog\\Desktop\\test1\\缓冲流.txt");

        try {
            //输出流
            FileWriter fileWriter = new FileWriter(file);//底层流
            BufferedWriter bWriter = new BufferedWriter(fileWriter);//上层流
            for(String string : content){
                bWriter.write(string);
                bWriter.newLine();//写完一行之后插入一个回行符,跳转到新行
            }
            //关闭输出流时先关闭顶层流,再关闭底层流
            bWriter.close();
            fileWriter.close();

            //输入流
            FileReader fileReader = new FileReader(file);
            BufferedReader bReader = new BufferedReader(fileReader);
            String string = null;
            while((string = bReader.readLine())!=null){//readLine()能够自动换行
                System.out.println(string);
            }
            bReader.close();
            fileReader.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }   
    }
}

完成后运行,就可以看到控制台输出如下结果:

西红柿炒鸡蛋
小葱拌豆腐
糖醋鲤鱼
红烧排骨

你可能感兴趣的:(Java学习笔记,java,io流)