IO流
什么是IO流
IO:input(输入),output(输出)。
无论输入还是输出都有源头和目的地。
对于Java来说,输入指的是从哪到哪呢?输出指的是从哪到哪呢?
Java里的输入:把数据从文件(或者网络)读取到程序里。
Java里的输出:把程序里的数据写入到文件(或者网络)中。
Java中的IO
在Java里的输入输出流有2大类:字节流、字符流
分类 | 字符输入流 | 字符输出流 | 字节输入流 | 字节输出流 |
---|---|---|---|---|
抽象父类 | Reader | Writer | InputStream | OutputStream |
访问文件 | FileReader | FileWriter | FileInputStream | FileOutputStream |
缓冲流 | BufferedReader | BufferedWriter | BufferedInputStream | BufferedOutputStream |
数据流 | DataInputStream | DataOutputStream | ||
对象流 | ObjectInputStream | ObjectOutputStream | ||
转换流 | InputStreamReader | OutputStreamWriter | ||
打印流 | PrintWriter | PrintStream |
Reader,字符输入流的抽象父类。
Writer,字符输出流的抽象父类。
InputStream,字节输入流的抽象父类。
OutputStream,字节输出流的抽象父类。
FileReader,Reader的子类,从文件中读取字符。
FileWriter,Writer的子类,往文件中写入字符。
FileInputStream,InputStream的子类,从文件中读取字节。
FileOutputStream,OutputStream的子类,往文件中写入字节。
BufferedReader,字符缓冲输入流,用于提升字符读取速度。
BufferedWriter,字符缓冲输入流,用于提升字符写入速度。
BufferedInputStream,字节缓冲输入流,用于提升字节读取速度。
BufferedOutputStream,字节缓冲输出流,用于提升字节写入速度。
DataInputStream,数据输入流,用于读取基本数据类型数据
DataOutputStream,数据输出流,用于写入基本数据类型。
ObjectInputStream,对象输入流,用于读取基本数据类型和对象类型。被读取的对象要实现Serializable接口。
ObjectOutputStream,对象输出流,用于写入基本数据类型和对象类型。被写入的对象要实现Serializable接口。
PrintWriter,字符打印流,用于写入字符数据。
PrintStream,字节打印流,用于写入字节数据。
InputStreamReader,输入转换流,用于把字节输入流流转换为字符输入流,可以指定编码格式。
OutputStreamWriter,输出转换流,用于把字节输出流转换为字符输出流。