javaio设计模式彻底分析

javaio设计模式彻底分析

ID:32658047

大小:228.22 KB

页数:18页

时间:2019-02-14

javaio设计模式彻底分析_第1页
javaio设计模式彻底分析_第2页
javaio设计模式彻底分析_第3页
javaio设计模式彻底分析_第4页
javaio设计模式彻底分析_第5页
资源描述:

《javaio设计模式彻底分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVAIO设计模式彻底分析2011-01-0614:20:09

2、分类:iaval字号订阅httD://blog.csdn.net/tianyue168/archive/2010/08/03/5786642.asD)c一。引子(概活地介绍Java的I0)无论是哪种编程语言,输入跟输出都是重要的一部分,Java也不例外,而且Java将输入/输出的功能和使用范畴做了很大的扩充。它采用了流的机制来实现输入/输出,所谓流,就是数据的有序排列,而流可以是从某个源(称为流源或SourceofStream)出来,到某个目的地(称为流汇或SinkofStream)去的。由流的方向,可以分成输

3、入流和输出流,一个程序从输入流读取数据向输出流写数据。女口,一个程序可以用Fileinputstream类从一个磁盘文件读取数据,如下图所示:像FilelnputStream这样的处理器叫做流处理器,它就像流的管道一样,从一个流源吸入某种类型的数据,并输出某种类型的数据。上面这种示意图叫做流的管道图。同样道理,也可以用FileOutputStream类向一个磁盘文件写数据,如下图所示:byb类型的敛据在实际应用这种机制并不没有太大的用处,程序需要写出地通常是非常结构化的信息,因此这些byte类型的数据实际上是一些数值,文字,源代码等。Java的I/O库提供了一个称做链接(Ch

4、aining)的机制,可以将一个流处理器跟另一个流处理器首尾相接,以其中之一的输出为输入,形成一个流管道的链接。例如,DatalnputStream流处理器可以把FilelnputStream流对象的输出当作输入,将Byte类型的数据转换成Java的原始类型和String类型的数据。如卞图所示:DaMnputStrumFLFilelnpviStreamb八甲的徴据DiskFita类似地,向一个文件写入Byte类型的数据不是一个简单的过程。一个程序需要向一个文件里写入的数据往往都是结构化的,而Byte类型则是原始类型。因此在写的时候必须经过转换oDataOutputStream

5、流处理器提供了接收了原始数据类型和String数据类型,而这个流处理器的输出数据则是Byte类型。也就是说DataOutputStream可以将源数据转换成Byte类型的数据,再输出来。这样一來,就可以将DataOutputStream与FileOutputStream链接起來,这样程序就可以将原始数据类型和String类型的源数据写入这个链接好的双重管道里而,达到将结构化数据写到磁盘文件里面的目的,如下图所示:j^DataOtrtputStream/虽FileOutputStream?汇b#t<类型ft*DiskFile这又是链接的所发挥的大作用。流处理器所处理的流必定都有

6、流源,而如果将流类所处理的流源分类的话,基本可以分成两大类:第一数组,String,File等,这一种叫原始流源。第二同样类型的流用做链接流类的流源,叫链接流源。二JavaI/O库的设计原则Java语言的I/O库是对各种常见的流源,流汇以及处理过程的抽象化。客户端的Java程序不必知道最终的流源,流汇是磁盘上的文件还是数组等;也不必关心数据是否经过缓冲的,可否按照行号读取等处理的细节。书中提到了,对于第一次见到Java/10库的人,无不因为这个库的庞杂而感到困惑;而对于熟悉这个库的人,而又常常为这个库的设计是否得当而争论不体。书的作者提出自己的意见,要理解Java1/0这个庞

7、大而复杂的库,关键是要常握两个对称性跟两个设计模式模式。JavaI/O库具有两个对称性,它们分别是:1输入一输出对称性,比如Inputstream和Outputstream各白占据Byte流的输入与输出的两个平行的等级结构的根部。而Reader和Writer各自占据Char流的输入与输出的两个平行的等级结构的根部。2byte-char对称,Inputstream和Reader的子类分别负责Byte和Char流的输入;Outputstream和Writer的子类分别负责Byte和Char流的输出,它们分别形成平行的等级结构。JavaI/O库的两个设计模式:Java的I/O库总体

8、设计是符合装饰者模式(Decorator)跟适配器模式(Adapter)的。如前所述,这个库屮处理流的类叫做流类。引子里所谈到的Fileinputstream,FileOutputStream,DatalnputStream及DataOutputStream都是流处理器的例子。1装饰者模式:在市Inputstream,Outputstream,Reader和Writer代表的等级结构内部,有一些流处理器可以对另一些流处理器起到装饰作用,形成新的,具有改善了的功能的流处理器。装饰者模式是Java1/0库的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。