21.3 字符缓存流(BufferedReader/BufferedWriter)
(BufferedReader/BufferedWriter) 是带缓冲区的字符流,默认缓冲区大小是8Kb,能够减少访问磁盘的次数,提高文件读取性能;并且可以一次性读取一行字符。(类似管道套管道一样,不带缓冲的流只能一滴一滴流,套了管道后,可以让一滴一滴留到外面的管道后一次性流出。)
21.3.1 字符缓存流构造方法
21.3.1.1 BufferedReader
BufferedReader(Reader in);创建一个默认缓冲区大小 8Kb 的字符缓冲输入流;
BufferedReader(Reader in, int sz);创建一个字符缓冲输入流;并分配 sz/byte 大小的缓冲区。
21.3.1.1 BufferedWriter
BufferedWriter(Writer out); 创建一个默认缓冲区大小 8Kb 的字符缓冲输出流;
BufferedWriter(Writer out, int sz); 创建一个字符缓冲输出流;并分配 sz/byte 大小的缓冲区。
21.3.2 字符缓存流的常用方法:readLine(),newLine()
BufferedReader.readLine();在字符缓冲输入流读取字符的时候,可以一次性读取一行,并将游标指向下一行。
try { File file = new File("test.txt"); FileReader fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String str; while ((str = br.readLine())!=null) { System.out.println(str); } }...
BufferedWriter.newLine();在字符串缓冲输出流写入字符的时候,默认是在一行写入,当需要换行的时候,调用 newLine() 实现文本换行。
try { File file = new File("test.txt"); FileWriter fw = new FileWriter(file); BufferedWriter bw = new BufferedWriter(fw); bw.write("写入一行的文本"); bw.newLine();//换行 bw.write("写入第二行的文本"); bw.flush();//刷新缓冲区,强制写入文件中 bw.close(); }...