java复习随笔(五)——IO流
字节流
-
OutputStream(字节输出流)
OutputStream是抽象类,无法实例化,同时也是所有字节输出流的超类。- FileOutputStream(字节文件输出流)
FileOutputStream用于写文件。通过write方法将指定字节写入文件。
构造方法:
FileOutputStream(File f)
- BufferedOutputStream(字节缓冲输出流)
BufferedOutputStream实现缓冲输出流,是FileOutputStream的一个子类,是FileOutputStream的加强流。在进行输出时,该类会在内存中开辟一段缓冲区空间。因为缓冲区在内存中的读写速度很快,以此来达到提升输出流的效率。
构造方法:
BufferedOutputStream(OutputStream os)
- FileOutputStream(字节文件输出流)
-
InputStream(字节输入流)
InputStream是抽象类,无法实例化,同时也是所有字节输入流的超类。- FileInputStream(文件输入流)
FileInputStream用于读文件,通过read方法读取,每次读取一个字节的数据。读到文件末尾返回-1。读取的类型是int。
构造方法:
FileInputStream(File f)
- BufferedInputStream(缓冲输入流)
BufferedInputStream实现缓冲输入流,是FileInputStream的一个子类,是FileInputStream的加强流。在进行输出时,该类会在内存空间开辟一段内存缓冲区空间。因为缓冲区在内存中读写速度很快,以此来达到提升输入流的效率。
构造方法:
BufferedInputStream(InputStream is)
- FileInputStream(文件输入流)
字符流
字符流为什么会出现?
一个汉字的存储,如果是GBK编码,占用两个字节。如果是UTF-8编码,占用三个字节。
字节流是一个一个字节读取,当解码时,会将一个字节当做一个字符。这时原本三个字节组成的字符被拆分,那么就会得到一串乱码。
而字符流就是为解决这一问题而生的。
-
Writer(字符输出流)
Writer是抽象类,无法实例化,同时也是所有字符输出流的超类。- OutputStreamWriter
OutputStreamWriter是从字符流到字节流的桥梁,使用指定的charset将写入的字符编码为字节。它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台默认的字符集。
OutputStreamWriter,
- OutputStreamWriter
-
Reader(字符输入流)
Reader是抽象类,无法实例化,同时也是所有字符输入流的超类。- InputStreamReader
InputStreamReader是从字节流到字符流的桥梁,它读取字节,并使用指定的charset将其解码为字符。它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台默认的字符集。
- InputStreamReader
本文来自博客园,作者:maplerain,转载请注明原文链接:https://www.cnblogs.com/maplerain/p/16654325.html 博主B站