跳到主要内容

Java IO

什么是 IO

io 可以理解为是 input 和 output 的两个缩写,分别代表了数据的 ”输入“和”输出“ 。io 流则是描述了将数据从内存和数据源之间拷贝的一个过程。

输入:数据从数据源加载到内存

输出:数据从内存写回到数据源

数据源可以是 txt,图片,SQL,mp4 等文件

IO 作用及应用场景

作用:在操作系统中,IO 主要分为设备驱动程序和文件系统程序,它们都是操作系统中的核心组件,主要负责与外部设备和文件系统进行交互,比如读取/写入外部设备,读取/写入文件系统,以及管理系统资源等,所以操作系统中需要有 IO 类来提供这些功能。

应用场景:

  • 读取文件内容
  • 网络数据发送

IO 输入输出流分类

在 Java 语言的 IO 体系内部主要划分为了两大类别:

  • 字节流
  • 字符流

字符流通常比较适合用于读取一些文本数据,例如txt格式类型的文本,这类资源通常都是以字符类型数据进行存储,所以使用字符流要比字节流更加高效。而对于一些二进制数据,例如图片,mp4这类资源比较适合用字节流的方式进行加载。

字节流

该类流每次读取数据的时候都会以字节作为基本单位进行数据的读取,通常都会有 InputStreamOutputStream 相关字眼。例如读取数据的时候每次如同下图所示,每次都按照字节进行加载。

字符流

该类流通常都会以字符的形式去读取数据信息,其读取的效率通常要比字节流更高效。相关的类通常都会带有 Reader 或者 Writer 相关字眼