目录

​一、IO流概述​

​二、IO流的分类​

​三、IO流理解​


一、IO流概述

IO:输入/输出(Input/Output)

流:是一个种抽象的概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输。

IO中的流就相当与我们日常生活中的管道,我们通过管道来把水引到用户,通过管道把石油输送到大罐.同样,我们利用流来从硬盘的文件中读数据到你的程序中,利用流来写数据到硬盘的文件

IO流就是用来处理设备间数据传输问题的

常见的应用:文件复制;文件上传;文件下载

二、IO流的分类

按照数据的流向:输入流:读数据 输出流:写数据

按照数据类型来分:

字节流:字节输入流;字节输出流

字符流:字符输入流;字符输出流

一般来说,我们说的IO流的分类是按照数据类型来分的

那么这两种流都在什么情况下使用的呢?

如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,

否则使用字节流。如果你不知道使用哪种类型的流,就使用字节流。

三、IO流理解

对于IO的理解,流这个概念十分重要。

举个简单的例子,你用壶往杯子里倒水,壶里的水不可能一下子就跑到被子里,而是需要一个过程。这个过程更像是连续的过程,源源不断进行着。

回到计算机上来,举一个计算机硬盘和内存的例子,硬盘需要传1g的数据到内存中以便处理,但是由于传输带宽等方面的限制,1g数据不可能立马就传到内存中,而是需要一点点进行的,就像从壶里往杯子里倒水一样。流这个词,生动形象说明了数据传输的过程。

另外IO操作被认为是资源,资源可能被多个程序使用,这就需要考虑资源有限的问题,于是便有了操作系统中的抢占IO。就像你用壶倒水,一般同一时刻只能倒一个杯子一样。