按照行读更快(通向缓冲区, 普通的字符输出流是通向文件)

字符缓冲输出流:
想要追加,还是得用原始管道: 
newLine (字符缓冲流的API)
package com.itheima.d3_char_buffer;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.io.Reader;/*** 目标: 学会使用缓冲字符输入流提高字符输入流的性能,新增了按照行读取的方法(经典代码)* 经典代码含义:有更多人用这种代码的风格来写**/public class BufferedReaderDemo1 {public static void main(String[] args) {try (// 资源要释放,放到小括号里面// 1. 创建一个文件字符输入流与源文件接通Reader fr = new FileReader("io-app2\\src\\data.txt");// a. 把低级的字符输入流包装成高级的缓冲字符输入流 (输入流读写)-- 将本地文件读到内存// 由于要用BufferedReader的独有方法,就不用多态写BufferedReader br = new BufferedReader(fr);){// // 2. 用循环,每次读取一个字符数组的数据// char[] buffer = new char[1024]; // 这个字符数组存储1024个字符 元素// int len; // 记录每次读取了多少个元素 (最后一桶可能装不满,读多少倒多少)// while ((len = br.read(buffer)) != -1){ // 不等于-1 代表读到了元素// String rs = new String(buffer,0,len); // 做一个解码 读多少倒多少// System.out.print(rs);// }// // 读文件一行数据// System.out.println(br.readLine()); // 有空行一样读// // (空行一旦下面没有内容了,就返回null,如果还有内容则把空行读出来)很智能// // 相当于读到null就结束// System.out.println(br.readLine()); // 接着往下读一行// System.out.println(br.readLine());// System.out.println(br.readLine());// 改进用循环String line; // 定义一个变量表示是否读到内容while ((line = br.readLine()) != null){ // 如果没读到就为空,不为空则表示读到立刻System.out.println(line); // 输出该读到的内容}} catch (Exception e) {e.printStackTrace();}}}
