❤️ 个人主页:水滴技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
🌸 订阅专栏:Java 教程:从入门到精通
大家好,我是水滴~~
今天一起看一下I/O 流的原理,以及流的各类。
什么是 I/O 流
所谓 I/O 是 Input/Output 的缩写,即输入/输出。I/O 技术用于处理数据的传输,文件的读写等。
数据传输可以看做是一种数据的流动,而流(Stream)可以理解为数据传输时的序列。按照数据的“流向”,流可分为输入流和输出流。
我们的 Java 程序是运行在内存中的,而文件是存储在磁盘中。那么 Java 程序读取文件内容时,是将文件中数据从磁盘传输至内存中,即输入流;而 Java 程序向文件写入内容时,是将数据从内存传输至文件中,即输出流。
可以这样来加强记忆:
流是以 Java 程序作为参照,“流入”的数据序列称为输入流,“流出”的数据序列称为输出流。
流的分类
- 按数据流的流向可分为:输入流和输出流。
- 按传输的数据单位可分为:字节流和字符流。
字节流:数据的读写以字节为单位,适用于二进制文件类型的数据读写,如:图片、视频等。
字符流:数据的读写以字符为单位,适用于文本类型的数据读写,例如:txt、html等。
Java 为我们提供四个基础抽象类,用于操作字符流和字节流,如下表:
# | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream(字节输入流) | Reader(字符输入流) |
输出流 | OutputStream(字节输出流) | Writer(字符输出流) |
这四个抽象类又有很多实现类,可以应用在不同的场景中,如下图:
后面会专门出一系列的文章,来讲述每一种实现类的使用和应用案例。