Java IO 包讲解
IO类的继承关系如下:
字节流:
字符流:
具体使用就没必要说了,大概说一下关系:
字节流和字符流
字节流,是将文件,以字节的形式读取和读出。
适合操作图片
,程序
等非文本文件
字符流,是将文件,以字符的形式读取和读出。
适合操作文本文件
字节流
InputStream
和OutputStream
是基类,无法直接使用
FileInputStream
是一个字节一个字节的读取,需要大量IO操作
BufferedInputStream
是先将字节读入缓存,然后一次性操作,IO操作次数少,效率高
BufferedInputStream
需要通过FileInputStream
来构造
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
FileOutputStream
和BufferedOutputStream
同理
字符流
Reader
和Writer
是基类,无法直接使用
FileReader
和BufferReader
的关系,与FileInputStream
和BufferedInputStream
是类似的,就连构造方式都是一样的
但是,InputStreamReader
和BufferedReader
的关系就有点复杂
因为InputStreamReader
是 字节与字符 的桥梁,所以,InputStreamReader
需要先使用FileInputStream
创建,然后,才能用来创建BufferedReader
OutputStreamWriter
、FileWriter
、BufferWriter
三者的关系同上