68. 缓存输入输出字符流

输入字符流:
--------------| Reader 输入字符流的基类。 抽象类
----------| FileReader 读取文件的输入字符流
----------| BufferedReader 缓存输入字符流(提高效率和扩展了FileReader的功能)。内部其实也维护了一个字符数组

扩展功能:
readLine()     一次读取文本的一行数据,如果读取到了文件末尾返回null

输出字符流:
--------------| Write  输出字符流的基类。 抽象类
----------| FileWrite  向文件输入数据
----------| BufferedWrite 缓存输出字符流。 内部维护了一个字符数组,当我们使用write的时候是把数据存储到了字符数组中,并不是写入了文件中
当我们使用flush,close方法或者数组满了的时候,才会写入文件中

扩展功能:
newLine()    添加一个回车符,实际上就是输出(/r/n)


注意:缓存流都不具备读写文件的能力

public class Demo3 {
    public static void main(String[] args)throws IOException  {
        File file = new File("D:\新建文件夹\1.txt");
        readText(file);//原数据
        writeText(file);//添加数据
        System.out.println("-------------------------------");
        readText(file);//添加后数据
    }
    
    //一行一行读取文本
    public static void readText(File file) throws IOException {
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        String line = null;
        while((line = bufferedReader.readLine())!=null) {
            System.out.println(line);
        }
        bufferedReader.close();
    }
    
    //一行一行把数据存入文本中
    public static void writeText(File file) throws IOException {
        FileWriter fileWriter = new FileWriter(file,true);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
        bufferedWriter.newLine();//换行
        bufferedWriter.write("789   789");
        bufferedWriter.close();
    }
}
原文地址:https://www.cnblogs.com/zjdbk/p/9073742.html