目录
一、IO流的小结
二、对IO流的介绍
* IO流分类:
* 流向:
* 输入流 读取数据
* 输出流 写入数据
* 数据类型:
* 字节流:
* 字节输入流:读取数据 InputStream
* 字符输出流:写入数据 OutputStream
* 字符流:
* 字符输入流:读取数据 Reader
* 字符输出流:写入数据 Writer
* 注意:一般我们在讨论IO流时,如果没有明确说明按照哪种分类,默认情况下是按照数据类型来分类的
三、字节流
1.文件字节输入输出流
FileInputStream:继承自父类InputStream(抽象类),用于从文件中获取输入字节,读取原始字节流。
FileOutputStream:继承自父类OutputStream(抽象类),用于将数据写入到输出流,写入原始字节流。
2.字节缓冲输入输出流
BufferedInputStream:当创建BufferedInputStream时,将创建一个内部缓冲区数组。 当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次有多个字节。
BufferedOutputStream:该类实现缓冲输出流。 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写 入的每个字节导致底层系统的调用。
四、字符流
1.转换流
InputStreamReader:继承自Reader,是从字节流到字符流的桥:它读取字节,并使用指定的charset
将其解码为字符 。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
OutputStreamWriter:继承自Writer,是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset
。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
2.文件字符输入输出流
FileReader:继承自InputStreamReader,是用于读取字符流,该类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。
FileWriter:继承自OutputStreamWriter,是用于写入字符流,该类的构造函数假定默认字符编码和默认字节缓冲区大小是可以接受的。
3.字符缓冲输入输出流
BufferedReader:继承自Reader, 从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。
BufferedWriter:继承自Writer,将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。
五、IO流操作步骤
a:创建输入/输出流对象
b:调用read()/write()方法进行读取/写入
c:关闭流资源