温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java IO输入输出流有哪些分类

发布时间:2026-10-02 04:08:46 来源:亿速云 阅读:85 作者:小樊 栏目:编程语言

在 Java 中,IO(输入输出)流主要用于程序与外部(文件、网络、内存等)之间的数据传输。可以从多个角度对 Java IO 流进行分类。


一、按数据流向分类(最基础)

1. 输入流(InputStream / Reader)

  • 用于从外部读取数据到程序
  • 例如:读文件、接收网络数据

2. 输出流(OutputStream / Writer)

  • 用于从程序写出数据到外部
  • 例如:写文件、发送网络数据

二、按操作的数据类型分类(非常重要)

1. 字节流(Byte Stream)

  • 处理 二进制数据(如图片、音频、视频、压缩文件)
  • 抽象类:
    • InputStream
    • OutputStream
  • 常见实现:
    • FileInputStream
    • FileOutputStream
    • BufferedInputStream
    • BufferedOutputStream

2. 字符流(Character Stream)

  • 处理 文本数据(如 .txt、.java)
  • 抽象类:
    • Reader
    • Writer
  • 常见实现:
    • FileReader
    • FileWriter
    • BufferedReader
    • BufferedWriter

✅ 区别:字节流按 byte 读写,字符流按 char 读写,字符流会自动处理编码


三、按功能 / 是否包装分类

1. 节点流(低级流 / 基础流)

  • 直接连接数据源
  • 例如:
    • FileInputStream
    • FileOutputStream
    • ByteArrayInputStream

2. 处理流(包装流 / 过滤流)

  • 包装节点流,增强功能(缓冲、转换、序列化等)
  • 例如:
    • BufferedInputStream
    • DataInputStream
    • ObjectInputStream
    • InputStreamReader

四、按用途 / 特殊功能分类

1. 缓冲流(提高效率)

  • BufferedInputStream
  • BufferedReader
  • BufferedWriter

2. 转换流(字节 ↔ 字符)

  • InputStreamReader
  • OutputStreamWriter

3. 数据流(基本类型)

  • DataInputStream
  • DataOutputStream

4. 对象流(序列化)

  • ObjectInputStream
  • ObjectOutputStream

5. 打印流

  • PrintStream
  • PrintWriter

五、Java IO 流整体结构图(简化)

IO流
├── 字节流
│   ├── InputStream
│   │   ├── FileInputStream
│   │   └── BufferedInputStream
│   └── OutputStream
│       ├── FileOutputStream
│       └── BufferedOutputStream
└── 字符流
    ├── Reader
    │   ├── FileReader
    │   └── BufferedReader
    └── Writer
        ├── FileWriter
        └── BufferedWriter

六、补充:NIO(了解即可)

  • Java 4+ 引入 java.nio
  • 面向 缓冲区(Buffer)和通道(Channel)
  • 更高效,适用于高并发网络编程

如果你愿意,我也可以:

  • 用 对比表格总结
  • 写 代码示例
  • 按 面试常问角度来讲 IO 流

你想从哪个角度继续?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手