3.流的分类
流可以根据不同的维度进行分类,比如可以根据流的方向进行分类,也可以根据传输的单位进行分类,还可以根据流的功能进行分类,比如以下几个。
① 按流向分类
- 输出流:
OutputStream
和Writer
为基类。
- 输入流:
InputStream
和Reader
为基类。
② 根据传输数据单位分类
- 字节流:
OutputStream
和InputStream
为基类。
- 字符流:
Writer
和Reader
为基类。
③ 根据功能分类
- 字节流:可以从或向一个特定的地方(节点)读写数据。
- 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。
PS:我们通常是以传输数据的单位来为流进行分类。
4.写文件的6种方法
写入文件的方法主要源于字符流 Writer
和输出字节流 OutputStream
的子类,如下图所示:
以上标注✅号的类就是用来实现文件写入的类,除此之外,在 JDK 1.7 中还提供了 Files
类用来实现对文件的各种操作,接下来我们分别来看。
方法 1:FileWriter
FileWriter
属于「字符流」体系中的一员,也是文件写入的基础类,它包含 5 个构造函数,可以传递一个具体的文件位置,或者 File
对象,第二参数表示是否要追加文件,默认值为 false
表示重写文件内容,而非追加文件内容(关于如何追加文件,我们后面会讲)。