I/O流

一、InputStream和OutputStream
  I/O类库中经常使用流这个概念,流指的是有能力产出数据的数据源对象或有能力接收数据的接收端对象。在java流的使用过程中,很少使用单一的类来创建流对象,而是通过使用别的流来“装饰”来达到想要的功能,“装饰”的前提是装饰器与它装饰的对象有同样的接口。在下图中的FilterInputStream和FilterOutputStream就是这样一种具有“装饰”功能的接口,具体实现由其子类完成。例如,DataInputStream,BufferedInputStream就可以装饰ByteArrayInputStream,StringBufferInputStream等。

这里写图片描述

这里写图片描述

二、Reader和Writer
  Reader和Writer与InputStream和OutputStream的继承结构非常相似,之所以出现Reader和Writer是因为InputStream和OutputStream
是8位的面相字节的处理方式,不能很好地处理16位的Unicode字符。联系:InputStreamReader可以将InputStream转为Reader,
OutputStreamWriter可以将OutputStream转为Writer。

                        装饰器对比

FilterInputStream               FilterOutputStream
    |--DataInputStream                  |--DataOutputStream
    |--BufferedInputStream              |--BuffereOutputStream
                                        |--PrintStream

FiterReader                     FilterWriter
    |--BufferedReader                   DataOutputStream
    (如果使用readLine()的情况,         BufferedWriter
    用DataInputStream)                 PrintWriter
    |--BufferedReader

  注意:BufferedWriter不是FilterWriter的子类,FilterWriter是抽象类,没有任何子类,把它放在那儿只是占位作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值