一、IO流概述
IO:输入/输出(Input/Output)
流:是一个种抽象的概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输。
IO中的流就相当与我们日常生活中的管道,我们通过管道来把水引到用户,通过管道把石油输送到大罐.同样,我们利用流来从硬盘的文件中读数据到你的程序中,利用流来写数据到硬盘的文件
IO流就是用来处理设备间数据传输问题的
常见的应用:文件复制;文件上传;文件下载
二、IO流的分类
按照数据的流向:输入流:读数据 输出流:写数据
按照数据类型来分:
字节流:字节输入流;字节输出流
字符流:字符输入流;字符输出流
一般来说,我们说的IO流的分类是按照数据类型来分的
那么这两种流都在什么情况下使用的呢?
如果数据通过Window自带的记事本软件打开,我们还可以读懂里面的内容,就使用字符流,
否则使用字节流。如果你不知道使用哪种类型的流,就使用字节流。
三、IO流理解
对于IO的理解,流这个概念十分重要。
举个简单的例子,你用壶往杯子里倒水,壶里的水不可能一下子就跑到被子里,而是需要一个过程。这个过程更像是连续的过程,源源不断进行着。
回到计算机上来,举一个计算机硬盘和内存的例子,硬盘需要传1g的数据到内存中以便处理,但是由于传输带宽等方面的限制,1g数据不可能立马就传到内存中,而是需要一点点进行的,就像从壶里往杯子里倒水一样。流这个词,生动形象说明了数据传输的过程。
另外IO操作被认为是资源,资源可能被多个程序使用,这就需要考虑资源有限的问题,于是便有了操作系统中的抢占IO。就像你用壶倒水,一般同一时刻只能倒一个杯子一样。