Java的I/O流类库给了许多种用于处理不同类型数据输入输出的类。
输入流
- InputStream: 全部字节输入流的超类。
- FileInputStream: 从文件系统中的文件读取字节数据。
- BufferedInputStream: 包含一个内部缓冲区的InputStream,搞优良了读取效率。
- ObjectInputStream: 用于反序列化对象。
输出流
- OutputStream: 全部字节输出流的超类。
- FileOutputStream: 将字节数据写入文件。
- BufferedOutputStream: 包含一个内部缓冲区的OutputStream,搞优良了写入效率。
- ObjectOutputStream: 用于序列化对象。
字符输入流
- Reader: 全部字符输入流的超类。
- FileReader: 从文件系统中的文件读取字符数据。
- BufferedReader: 包含一个内部缓冲区的Reader,搞优良了读取效率。
字符输出流
- Writer: 全部字符输出流的超类。
- FileWriter: 将字符数据写入文件。
- BufferedWriter: 包含一个内部缓冲区的Writer,搞优良了写入效率。
特殊流
- File: 用于文件和目录的创建、删除、沉命名等操作。
- PrintStream: 用于向文本输出流写入格式化的数据,是OutputStream的子类。
- PrintWriter: 用于向文本输出流写入格式化的数据,是Writer的子类。
不一样
- 字节流和字符流的不一样:
- 字节流处理二进制数据,适用于处理全部类型的文件。
- 字符流处理文本数据,适用于处理文本文件,Neng避免乱码问题。
Java的I/O流设计得如此丰有钱和细致,是为了给许多种灵活的方式来处理不同类型的输入输出需求。比方说用字节流Neng处理图片、视频等二进制文件,而用字符流则geng适合处理文本文件。通过选择合适的流类,Nenggeng高大效和正确地处理各种数据。