Java I/O 方式有很多种,传统的 I/O 也称为 BIO,主要流有哪些

Java 传统 I/O(BIO)的主要流

Java 的传统 I/O,也称为阻塞式 I/O(Blocking I/O,简称 BIO),涉及读取和写入数据的各种流。可以通过一个形象的例子来说明这些流的作用和特点。

形象的例子:图书馆借阅系统

想象一个传统的图书馆,提供各种类型的书籍和杂志。这个图书馆里有几种不同的借阅方式,这些方式可以类比为 Java 中的几种主要的 I/O 流。

1. InputStream(输入流)/ Reader(字符输入流):读者从图书馆借阅书籍
  • 性质

    • InputStreamReader 是用于读取数据的流。InputStream 处理字节数据(如二进制文件),而 Reader 处理字符数据(如文本文件)。
    • 就像读者从图书馆借书,他们从图书馆中“读取”信息。
  • 形象解释

    • 你去图书馆借一本书,这就像使用 InputStreamReader 从数据源(如文件或网络)中读取数据。你可以通过翻阅书页(遍历流中的数据)来获取信息。
2. OutputStream(输出流)/ Writer(字符输出流):读者将书籍归还图书馆
  • 性质

    • OutputStreamWriter 是用于写入数据的流。OutputStream 处理字节数据,而 Writer 处理字符数据。
    • 就像读者把书还回图书馆,他们把信息“写入”到图书馆的系统中。
  • 形象解释

    • 当你把一本书还给图书馆,这就像使用 OutputStreamWriter 向目标(如文件或网络)写入数据。你在借书的过程中获取了信息,然后通过还书的方式将信息保存或提交回系统。
3. FileInputStream 和 FileOutputStream:读者借阅和归还具体的物理书籍
  • 性质

    • FileInputStreamFileOutputStream 是用于从文件中读取和写入字节数据的流。
    • 它们与具体的物理文件(如一本实际的书)对应。
  • 形象解释

    • 你借阅了一本实体书(FileInputStream),并在阅读后归还了它(FileOutputStream)。这就像从文件中读取数据并将修改后的数据写回到文件中。
4. BufferedInputStream 和 BufferedOutputStream:图书馆的预借和批量归还系统
  • 性质

    • BufferedInputStreamBufferedOutputStream 提供了缓冲功能,使读取和写入操作更加高效。
    • 就像图书馆允许读者预借一批书,或者批量归还书籍,提高了操作的效率。
  • 形象解释

    • 你预先借阅了一堆书,存放在你的书包里(缓冲区),这样你在家里阅读时不需要频繁地去图书馆(减少了 I/O 操作)。当你读完后,你可以一次性归还这些书,而不是一本一本地还。
5. ObjectInputStream 和 ObjectOutputStream:图书馆的电子书籍借阅系统
  • 性质

    • ObjectInputStreamObjectOutputStream 用于读写对象,这意味着你可以直接读取或写入完整的 Java 对象,而不仅仅是字节或字符数据。
    • 这就像图书馆的电子书籍系统,读者可以借阅和归还完整的电子书(对象)。
  • 形象解释

    • 你使用图书馆的电子系统借阅了一本电子书(ObjectInputStream),这本书不仅包含文字,还包含图片、格式等完整信息。阅读完后,你将这本完整的电子书归还到图书馆的系统中(ObjectOutputStream)。

总结

Java 的传统 I/O(BIO)方式通过不同的流来处理数据,就像在图书馆中借阅和归还书籍。InputStreamOutputStream 是基础的字节流,ReaderWriter 是处理字符的流,Buffered 类流提供了更高效的缓冲机制,而 ObjectStream 则处理更复杂的对象数据。这些流各有用途,帮助程序更好地处理各种类型的数据输入和输出。

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值