字符缓冲流:

BufferedReader 字符缓冲输入流:
BufferedWriter 字符缓冲输出流

BufferedReader 输入流:

  1. 一次读一个字符<br /> 一次读一个字符串<br /> 一次读一个字符串一部分<br /> 一次读一个字符数组<br /> 一次读一个字符数组一部分<br /> String readLine()<br /> ** 多了一个新方法 一次读一行的方法**<br /> **返回值是读到的当前行字符串数据**<br /> **读到文件末尾返回null**<br /> 读取到文件中的\r或者\n或者\r\n为一行结束 readLine执行完毕 返回当前行数据<br /> 但是不包括\r或者\n或者\r\n符<br />//一次读入一行 ![image.png](https://cdn.nlark.com/yuque/0/2022/png/28889470/1655357577517-e579e686-5d8e-4ef6-b36d-d40d255c40ff.png#clientId=u81a6fd8f-462c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=134&id=u6135e3f3&margin=%5Bobject%20Object%5D&name=image.png&originHeight=167&originWidth=708&originalType=binary&ratio=1&rotation=0&showTitle=false&size=10977&status=done&style=none&taskId=u5cea69ef-c205-4c14-a463-5c4d5d34f72&title=&width=566.4)<br /> 输出流<br /> BufferedWriter<br /> 一次写一个字符<br /> 一次写一个字符串<br /> 一次写一个字符串的一部分<br /> 一次写一个字符数组<br /> 一次写一个字符数组的一部分<br /> 新增方法:<br /> newLine() 动态输出换行符(自动判断操作系统)![image.png](https://cdn.nlark.com/yuque/0/2022/png/28889470/1655357648078-d33291f4-ad6c-4aa6-876e-0dbfb99c59b9.png#clientId=u81a6fd8f-462c-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=140&id=u312f743a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=175&originWidth=689&originalType=binary&ratio=1&rotation=0&showTitle=false&size=18464&status=done&style=none&taskId=ud6a1c540-9b29-4f6c-946c-ebda41fd339&title=&width=551.2)

三种换行方式:

bw.write(“\r\n”);
bw.write(System.getProperty(“line.separator”));
bw.newLine();