这一次我们来到IO--input/output;
1.什么是IO?
在程序中运行的数据从哪里来,到哪里去的流动;
文件----程序:将文档中的数据交给程序,或者程序将数据写到文档中;比如将一本txt格式小说的内容打印到控制台;
网络----程序:比如实现上传下载,就是数据传送到网络另一端,或者从网络另一端得到数据;
程序----程序:两个程序直接进行数据交互;
其实就是两端:一端是程序,另一端是数据源;
在上图中,IO就是负责两端链接的管道,当管道打通,数据就可以在管道中流动,实现输入和输出;而管道的两端,一端是程序,另一端就是数据源,可以是文件,可以是网络,也可以是另一个程序;
2.IO的分类?
IO是作为Java中的类存在的,其实说简单点,就是Java给我们提供了各种类别的管道,供编程者来连通程序和数据源;那到底提供了哪些管道,就是所谓IO的分类了;
字节流和字符流:根据管道中流动的数据类型划分;比如水管中流动水,烟囱中流动的是烟;
输入流和输出流:根据管道的流动方向来区分;是流向程序本身,接收到外面的流这是输入;是对外,将流发送到数据源这是输出;
节点流和处理流:这是使用装饰者模式来进行管道的区分,也是竹迩比较推荐大家学习IO采用的方式;
节点流就是实现连通的管道,真正的数据在里面跑的管道;
处理流是套在节点流上的管道,比如在水管外面加一层保温管道;
如果使用节点流和处理流的方式来学习IO,只需要2个步骤:
first找到将程序和数据源连通的管道,打通连接
second在连通管道上套有补充功能的管道,让数据流动能够加速或者保温;
3.IO的简单实现
我们来实现图中所示的过程:
具体代码过程如下:
1.什么是IO?
在程序中运行的数据从哪里来,到哪里去的流动;
文件----程序:将文档中的数据交给程序,或者程序将数据写到文档中;比如将一本txt格式小说的内容打印到控制台;
网络----程序:比如实现上传下载,就是数据传送到网络另一端,或者从网络另一端得到数据;
程序----程序:两个程序直接进行数据交互;
其实就是两端:一端是程序,另一端是数据源;

在上图中,IO就是负责两端链接的管道,当管道打通,数据就可以在管道中流动,实现输入和输出;而管道的两端,一端是程序,另一端就是数据源,可以是文件,可以是网络,也可以是另一个程序;
2.IO的分类?
IO是作为Java中的类存在的,其实说简单点,就是Java给我们提供了各种类别的管道,供编程者来连通程序和数据源;那到底提供了哪些管道,就是所谓IO的分类了;
字节流和字符流:根据管道中流动的数据类型划分;比如水管中流动水,烟囱中流动的是烟;

输入流和输出流:根据管道的流动方向来区分;是流向程序本身,接收到外面的流这是输入;是对外,将流发送到数据源这是输出;

节点流和处理流:这是使用装饰者模式来进行管道的区分,也是竹迩比较推荐大家学习IO采用的方式;
节点流就是实现连通的管道,真正的数据在里面跑的管道;
处理流是套在节点流上的管道,比如在水管外面加一层保温管道;

如果使用节点流和处理流的方式来学习IO,只需要2个步骤:
first找到将程序和数据源连通的管道,打通连接
second在连通管道上套有补充功能的管道,让数据流动能够加速或者保温;
3.IO的简单实现

我们来实现图中所示的过程:
- 文档中的数据发送到程序端,程序段作为接受方--输入流
- 文档中的数据是字符形式--字符流
-
选择管道:字符流同时也是输入流--FileReader
具体代码过程如下: