17370845950

java 中 IO 流分为几种?
Java IO流分为字节流和字符流,按流向分输入输出流,四大基类为InputStream、OutputStream、Reader、Writer,辅以缓冲、数据、对象、转换等处理流,适用于不同数据类型与操作需求。

Java 中的 IO 流主要按照数据流向和处理方式分为两大类:字节流字符流,每类又分为输入流和输出流,共四种基本类型。

1. 按数据单位分类

根据操作的数据单位不同,IO 流分为:
  • 字节流(Byte Stream):以字节(8位)为单位处理数据,适用于所有类型的文件,如图片、音频、视频、文本等。
  • 字符流(Character Stream):以字符(16位)为单位处理数据,专门用于文本文件,能自动处理字符编码转换,更方便读写字符串。

2. 按流向分类

根据数据的流向,每种流都分为输入和输出两种方向:
  • 输入流(Input Stream):从外部设备或文件读取数据到程序中。
  • 输出流(Output Stream):将数据从程序写入到外部设备或文件中。

3. 四大核心抽象基类

Java IO 提供了四个最顶层的抽象类,其他具体实现类都基于它们:
  • InputStream:字节输入流的父类,如 FileInputStream。
  • OutputStream:字节输出流的父类,如 FileOutputStream。
  • Reader:字符输入流的父类,如 FileReader。
  • Writer:字符输出流的父类,如 FileWriter。

4. 其他常见流类型(按功能扩展)

除了基础分类,Java IO 还提供了一些处理流来增强功能:
  • 缓冲流:如 BufferedInputStream、BufferedReader,提高读写效率。
  • 数据流:如 DataInputStream、DataOutputStream,可读写基本数据类型。
  • 对象流:如 ObjectInputStream、ObjectOutputStream,支持对象序列化。
  • 转换流:如 InputStreamReader、OutputStreamWriter,实现字节流与字符流之间的转换。

基本上就这些。选择哪种流取决于你要处理的是文本还是二进制数据,是否需要缓冲、转换编码或序列化对象。理解这几种分类方式,就能灵活使用 Java IO。