java的输入输出按照流的方向以及处理的数据单位主要可以分为四大类:
1.InputStream,用于处理字节的输入
2.OutputStream,用于处理字节的输出
3.Reader,用于处理字符的输入
4.Writer,用于处理字符的输出
以上四类均为基本类,同时也为抽象类,不可直接创建实例对象。
按流的角色可分为节点流(文件流)和处理流。
节点流:(通常用以File类实例对象为参数的构造方法进行构造节点流实例)
FileInputStream
FileOutputStream
FileReader
FileWriter
处理流:
1.缓冲流:(通常以相应的节点流实例对象为参数的构造方法进行构造缓冲流的实例。
BufferedInputStream
BufferedOutputStream
BufferedReader
BufferedWriter
2.转换流:
InputStreamReader ,将字节流转换为字符流
通常用参数为InputStream的实例对象的构造方法进行构造
OutputStreamWriter,将字符流转换为字节流
通常用参数为OutputStream的实例对象的构造参数进行构造
3.标准输入输出流
System.in返回一个InputStream类的实例对象,该实例对象默认是把键盘输入作为输入源,因此被称为标准输入流。
通过System.setIn()方法可以重新设置输入源。
例如在构造Scanner类的实例对象时,如果用了System.in作为参数的话,那么即是以键盘输入的InputStream实例对象为参数。
System.out默认返回一个PrintStream类的实例对象,该实例对象默认把控制台输出作为输出地,因此被称为标准输出流。
通过System.setOut()方法可以重新设置输入地。
4.打印流
PrintStream,向某处写入字节
PrintWriter,向某处写入字符
这两类通常以OutputStream或者File实例对象作为构造参数
5.数据流
DataInputStream
DataOutputStream
这两类流通常用于处理Java的基本数据类型和字符串。
6.对象流
ObjectInputStream
ObjectOutputStream
用于对象的序列化和反序列化。
关乎对象的序列化机制。