装饰器模式之java IO流
来源:互联网 发布:linux漏洞公布 编辑:程序博客网 时间:2024/06/14 01:26
例如现在有这样一个需求:读取一个文件里面的内容,将文件里的内容所有的小写字母都转换成大写的。这个时候我们就可以通过去扩展IO流去做。
package com.unis.io; 2. 3.import java.io.BufferedReader; 4.import java.io.File; 5.import java.io.FileReader; 6.import java.io.FilterReader; 7.import java.io.IOException; 8.import java.io.Reader; 9. 10.public class UppCaseReader extends FilterReader { 11. 12. public UppCaseReader(Reader in) { 13. super(in); 14. } 15. 16. @Override 17. public int read(char[] cbuf, int off, int len) throws IOException { 18. int result = super.read(cbuf, off, len); 19. for(int i=off;i<len;i++){ 20. if(cbuf[i]>='a'&&cbuf[i]<='z'){ 21. cbuf[i] -= 32; 22. } 23. } 24. return result; 25. } 26. 27.// @Override 28.// public int read() throws IOException { 29.// int result = super.read(); 30.// if(result>='a'&&result<='z'){ 31.// result-=32; 32.// } 33.// return result; 34.// } 35. 36. public static void main(String[] args) throws IOException { 37. Reader reader = new BufferedReader(new UppCaseReader(new FileReader(new File("src/com/unis/io/UppCaseReader.java")))); 38. int i =0; 39. while((i=reader.read())!=-1){ 40. System.out.print((char)i); 41. } 42. } 43.}
Reader reader = new BufferedReader(new UppCaseReader(new FileReader(new File("src/com/unis/io/UppCaseReader.java"))));
是典型的装饰器模式的运用语句。每封装一次,就添加一个新的功能。
0 0
- 装饰器模式之java IO流
- Java IO流之装饰模式与适配器模式讲解
- 浅析Java IO 设计模式之—装饰器模式
- Java 装饰模式 io流
- JAVA IO之装饰器模式(Head first 设计模式之装饰器模式)
- 《java与设计模式》之装饰模式详解&Java IO中的装饰器模式
- java IO之装饰设计模式
- java程序员从笨鸟到菜鸟之(三十八)IO流之装饰器模式初探
- java IO 装饰模式
- Java Io装饰模式
- 设计模式学习之装饰模式:IO流的装饰器
- 基础知识之IO流(装饰设计模式)
- 为什么说java中的io流是装饰器模式
- java--IO流缓冲区,装饰设计模式
- Java IO流和装饰模式(Decorator)
- 装饰器模式(Decorator) java IO
- java-IO与装饰器模式
- java.io.*中的设计模式之 装饰(Decorator)模式
- STM32F407的RTC时间
- 【2015-12-06】STM32系统架构学习
- UG工程图模板变量
- 【Java基础提高】深入分析final关键字(一)
- 利用Adaboost和LBP特征进行人脸检测
- 装饰器模式之java IO流
- Java中的String、StringBuilder以及StringBuffer(转载)
- 71. MVC 改进
- html5 - 基础格式认识和标签用法(文本元素常用方法)
- 【Leetcode】Rotate Array
- servlet复习(一)Servlet API
- CodeForces 586E Alice, Bob, Oranges and Apples 水题
- javascript新建对象及基本数据类型
- 超实用的jQuery代码段 - jQuery实现Animate动画