您的位置:首页 > 编程语言 > Java开发

JAVA IO中的设计模式

2017-07-14 17:45 225 查看

JAVA IO中的设计模式

  在java语言 I/O库的设计中,使用了两个结构模式,即装饰模式和适配器模式。
在任何一种计算机语言中,输入/输出都是一个很重要的部分。与一般的计算机语言相比,java将输入/输出的功能和使用范畴做了很大的扩充。因此输入输出在java语言中占有极为重要的位置。java语言采用流的机制来实现输入/输出。所谓流,就是数据的有序排列,流可以是从某个源(称为流源,或者 Source of Stream)出来,到某个目的(Sink of Stream)地去。根据流的方向可以将流分成输出流和输入流。程序通过输入流读取数据,想输出流写出数据。
  例如:一个java程序可以使用FileInputStream类从一个磁盘文件读取数据,如下图:

View Code

可以看出,这个类接受一个类型为inputStream的System.in对象,将之适配成Reader类型,然后再使用BufferedReader类"装饰"它,将缓冲功能加上去。这样一来,就可以使BufferedReader对象的readerLine() 方法读入整行的输入数据,数据类型是String。 在得到这个数据之后,程序又将它写出到System.out 中去,完成了全部的流操作,下图所示为其管道图:



本系统使用了BufferedReader来为流的读入提供缓冲功能,这样做的直接效果是可以使用readLine()方法按行读入数据。但是由于 Reader接口并不提供readLine()方法,所以这样一来,系统就必须声明一个BufferedReader类型的流处理器,而不是一个 Reader类型的流处理器,这意味着装饰模式的退化。
在上面的管道连接过程中,InputStreamReader 起到了适配器的作用,它将一个byte类型的输入流适配成为一个char类型的输入流。在这之后,BufferedReader则起到了装饰模式的作用, 将缓冲机制引入到流的读入中。因此这个例子涉及到了两个设计模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: