【Java笔记】——将晦涩难懂的IO流形象化

18 篇文章 2 订阅

    何为流?物质在库与库之间的转移运行称为流,也就是说它是一个抽象的概念,既看不到也摸不着,更感受不到。那么应该如何理解这么一个抽象概念呢?就是把它形象化。

 

    暂且举一个小例子,蚂蚁搬家的故事,从一个洞把食物搬到另外一个洞,很多蚂蚁会一起工作,有来有回连续不断,这样在两个洞中间就可以形成搬运食物的“流”。

                          

    Java语言的输入和输出功能是十分强大的,对于数据的输入输出操作就是以“流”的方式进行的。这里的数据也就可以认为是蚂蚁的“食物”,而数据从哪里输出,又输出到哪里,就可以认为是蚂蚁的两个洞。J2SDK提供了很多的“流”类,用来获取不同种类的数据,这些类都定义在java.io包中。

 

流类的分类

    1、按流的方向不同分:输入流和输出流

 

    2、按处理数据的单位不同分:字节流(8位)和字符流(16位)

 

    3、按照功能不同分:节点流和处理流

 

四种基本流

    J2SDK提供的所有流类都分别继承四种抽象流类型:

             

    1、InputStream和Reader

 

    继承于InputStream的流都是用于向程序中输入数据,且数据的单位为字节。

            

           

 

    2、OutputStream和Writer

 

    继承于OutputStream的流都是用于从程序中输出数据,且数据的单位为字节。

              

              

节点流和处理流

    1、节点流为可以从一个特定的数据源读写数据。可以理解为给一个桶插上一根管子,就可以从管子另一头取水。

                                

 

    2、处理流是连接在已存在的流之上,通过对数据的处理为程序提供更为强大的读写功能。也就是说在这个管子上再套一层管子,从而可以取不同形态的水,比如带冰的。

                               

疑惑点

    在这里很容混淆一个概念,就是说输入和输出是相对谁而言的?为什么InputStream时后面跟的Reader,而OutputStream时后面跟的是Writer?

 

    其实输入和输出都是相对于程序而言的,比如输入流,它是向程序中输入数据,为什么用Reader,那是因为要把流里面的数据读入程序中;而输出流正好相反,它是从程序中输出数据,用Writer是因为要把数据写入流中。

 

总结

    面向对象中有很多抽象的概念,对于这种没有实物对比的概念,必须要把它形象化才能更容易理解和掌握。这时就要把知识融入生活,找跟生活类似的东西去比对,从而跟生活常识构成知识网,这也很好的体现了代码如人生的道理。

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值