1.IO流的继承结构
在java中,根据处理的数据单位不同,可以把流分为字节流和字符流
字节流 : 针对二进制文件
字符流 : 针对文本文件,读写容易出现乱码的现象,在读写时,最好指定编码集为UTF-8
在结合对应类型的输入和输出方向,常用的流有:
File
1. 字节流:针对二进制文件
1. InputStream
- FileInputStream
- BufferedInputStream
- ObjectInputStream
2. OutputStream
- FileOutputStream
- BufferedOutputStream
- ObjectOutputStream
2. 字符流:针对文本文件
1. Reader
- FileReader
- BufferedReader
- InputStreamReader
2. Writer
- FileWriter
- BufferedWriter
- OutputStreamWriter
- PrintWriter一行行写出
2.IO流的特点
流表面看起来的集合很像,都可以让我们转换和获取数据,但是他们之间存在着显著的差别:
- 流并不存储元素,这些元素可能存储在底层的集合中,或者是按需生产的。
- 流的操作不会修改其数据源,其只是作为一种运算工具的存在。
3.不同流的详细区分
-
主流分类
- 按照方向进行分类:输入流 输出流(相对于程序而言,从程序写数据到文件中是输出)
- 按照传输类型进行分类:字节流 字符流
- 组合: 字节输入流 字节输出流 字符输入流 字符输出流
-
学习方法:在抽象父类中学习通用的方法,在子类中学习如何创建对象
-
字节输入流:
InputStream 抽象类,不能new,可以作为超类,学习其所提供的共性方法- FileInputStream 子类,操作文件的字节输入流,普通类
- BufferedInputStream 子类,缓冲字节输入流,普通类
-
字符输入流
Reader 抽象类,不能new,可以作为超类,学习其所提供的共性方法- FileReader,子类,操作文件的字符输入流,普通类
- BufferedReader,子类,缓冲字符输入流,普通类
-
字节输出流:
OutputStream 抽象类,不能new,可以作为超类,学习其所提供的共性方法- FileOutputStream 子类,操作文件的字节输出流,普通类
- BufferedOutputStream 子类,缓冲字节输出流,普通类
-
字符输出流
Writer 抽象类,不能new,可以作为超类,学习其所提供的共性方法- FileWriter,子类,操作文件的字符输出流,普通类
- BufferedWriter,子类,缓冲字符输出流,普通类
7839




被折叠的 条评论
为什么被折叠?



