IO 流简介
📝 通俗解释
IO 就是 Input(输入) 和 Output(输出)。
- 输入:把数据从外面(硬盘、网络)搬到内存里,就像把水从河里抽到水缸里。
- 输出:把数据从内存里搬到外面(硬盘、网络),就像把水缸里的水倒进河里。
- 流:数据传输的过程就像水流一样,断断续续或者源源不断,所以叫“流”。
2026/2/16大约 19 分钟
📝 通俗解释
IO 就是 Input(输入) 和 Output(输出)。
- 输入:把数据从外面(硬盘、网络)搬到内存里,就像把水从河里抽到水缸里。
- 输出:把数据从内存里搬到外面(硬盘、网络),就像把水缸里的水倒进河里。
- 流:数据传输的过程就像水流一样,断断续续或者源源不断,所以叫“流”。
这篇文章我们简单来看看我们从 IO 中能够学习到哪些设计模式的应用。
📝 通俗解释
装饰器模式就像是“套娃”或者“穿装备”。
- 核心:不改变原来的东西,但是给它增加新功能。
- 例子:
FileInputStream是一个普通的“读文件工人”。BufferedInputStream是一个“带推车的装饰器”。- 我们把“读文件工人”装进“带推车的装饰器”里(
new BufferedInputStream(new FileInputStream(...))),他就变成了“带推车的读文件工人”,干活效率更高了。- 好处:我们可以随意组合,比如再套一个“解压缩装饰器”,他就能读压缩包了。
IO 模型这块确实挺难理解的,需要太多计算机底层知识。写这篇文章用了挺久,就非常希望能把我所知道的讲出来吧!希望朋友们能有收获!为了写这篇文章,还翻看了一下《UNIX 网络编程》这本书,太难了,我滴乖乖!心痛~
个人能力有限。如果文章有任何需要补充/完善/修改的地方,欢迎在评论区指出,共同进步!
I/O 一直是很多小伙伴难以理解的一个知识点,这篇文章我会将我所理解的 I/O 讲给你听,希望可以对你有所帮助。
📝 通俗解释
I/O 是计算机和外界交互的桥梁。没有 I/O,计算机就是一个封闭的黑盒子,算得再快也没用。
在学习 NIO 之前,需要先了解一下计算机 I/O 模型的基础理论知识。还不了解的话,可以参考我写的这篇文章:Java IO 模型详解。
📝 通俗解释
NIO (New IO) 是 Java 1.4 引入的,用来解决 BIO 性能差的问题。
- 核心理念:不要傻等。
- 三大金刚:Buffer(缓冲区)、Channel(通道)、Selector(选择器)。