课程内容:
-
Reader和Writer
-
FileReader和FileWriter
-
BufferedReader和BufferedWriter
-
PrintStream和PrintWriter
-
PrintWriter相较于BufferedWriter强大之处
Reader和Writer
Reader 所有字符输入流统一的父类 抽象类
int read()
int read(char[] data)
int read(char[] data,int offset,int length)
Writer 所有字符输出流统一的父类 抽象类
write(int data)
write(char[] data)
write(char[] data,int offset,int length)
FileReader和FileWriter
FileReader 字符流 输入流 节点流
FileWriter 字符流 输出流 节点流
*: 此处省略一堆字
BufferedReader和BufferedWriter
BufferedReader 字符流 输入流 过滤流 添加以一行为单位读取文本的功能
BufferedWriter 字符流 输出流 过滤流 添加以一行为单位写出文本的功能
*: 作为过滤流的它们 给原本的流添加变长的缓冲空间
从而实现以一行为单位的读写
*: 它们都是过滤流 只能连接其它的流 不能直接连接文件
*: BufferedReader String readLine()
*: BufferedWriter write(String str) + newLine()
*: BufferedReader 以null作为读取结束的标识
PrintStream和PrintWriter
PrintStream 专业的写出工具(底层以字节)
PrintWriter 专业的写出工具(底层以字符)
*: 在实际开发场景中,以一行为单位写出文件用PrintWriter,以一行为单位读取文件用BufferedReader
PrintWriter相较于BufferedWriter强大之处
1.PrintWriter 既可以当做节点流 又可以当做过滤流标签:字符,PrintWriter,int,BufferedReader,BufferedWriter,day10,IO,m2,data From: https://www.cnblogs.com/zhaodenghui33/p/18259617
构造方法允许传入 File / String / 流
2.PrintWriter 既可以连接字节流 又可以连接字符流
构造方法允许传入 OutputStream / Writer
3.PrintWriter 当做节点流使用的时候 构造方法第二个参数
可以指定字符编码
PrintWriter pw = new PrintWriter("a.txt","utf-8");
4.PrintWriter 当做过滤流使用的时候 构造方法第二个参数
可以指定自动清空缓冲
new PrintWriter(new FileWriter("a.txt"),true);
5.PrintWriter 的
println() = write() + newLine()
6.我们对于它的孪生兄弟 特别熟悉 System.out.println();
out就是它孪生兄弟PrintStream
*: 综上所述,在未来 以[行]为单位写出文本文件的时候
我们根本不会选择BufferedWriter 而会选择PrintWriter