黑马程序员_Java中IO与装饰者设计模式

来源:互联网 发布:steam 汉化 知乎 编辑:程序博客网 时间:2024/05/01 05:42
------- android培训、java培训、期待与您交流! ----------

一、处理流的使用实例

BufferedReader 对象:

此方法是Reader的子类,它属于字符流同时也是输入流还是处理流,最核心的方法是
<span style="font-weight: normal;">public String readLine() throws IOException</span>
此方法可以读取一个文本行

生成BufferedReader 对象的方法:

BufferedReader in   = new BufferedReader(new FileReader("foo.in"));

由此可看出BufferReader对象实例化会接收一个Reader对象及其子类当参数。(test.txt文件中内容是

abc
cba
efg

class BufferReaderDemo{public static void main(String [] args){//声明FileReader对象,节点流FileReader fr = null;//声明BufferedReader对象,处理流BufferedReader br = null;try{//实例化FileReader对象,传入当前目录下txt文件名参数fr = new FileReader("test.txt");//将FileReader对象作为参数传入BufferedReaderbr = new BufferedReader(fr);String line =null;//循环读取文本内容while(true){//每次读取一行,读取到内容返回内容,读取文件末尾返回nullline = br.readLine();if(line == null){break;}//输出读取的内容System.out.println(line);}}catch(Exception e){System.out.println(e);}finally{try{//分别关闭打开的流对象br.close();fr.close();}catch(Exception e){System.out.println(e);}}}}
运行结果:
abccbaefg

二、装饰者模式

当想要对已有的对象进行功能增强时,
可以定义类,将已有对象传入,基于已有的功能,并提供增强功能。
那么自定义的该类称为装饰类(比如:BufferedReader),被增强的类称为被装饰类(比如:Reader)。

//创建一个普通类有一个chifan方法class Person{public void chifan(){System.out.println("吃饭");}}//创建一个增强类,对chifan方法进行增强class SuperPerson extends Person{private Person p;SuperPerson(Person p){this.p = p;}public void superChifan(){System.out.println("开胃菜");p.chifan();System.out.println("甜点");}}class PersonDemo{public static  void main(String [] arg){Person p = new Person();p.chifan();SuperPerson sp = new SuperPerson(p);sp.superChifan();}}



------- android培训、java培训、期待与您交流! ----------
0 0
原创粉丝点击