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(); } }