转换流的使用,和装饰类的应用,以及开发时该怎样选择要使用的对象

本文介绍了如何选择正确的流操作对象,包括明确源和目的、判断数据类型及选择具体设备,并探讨了装饰模式与继承的区别,如灵活性、类间关系简化等。

使用流操作对象的时候,如何明确该使用哪个对象来操作。
三个条件:
1.明确源和目的。
 源:输入流。InputStream   Reader
 目的:输出流。OutputStream  Writer。

2.操作的数据是否是纯文本。
 是:字符流
 否:字节流。

3.当体系明确后,在明确要使用哪个具体的对象。
 通过设备来进行区分:
  源设备:内存、硬盘、键盘。
  目的设备:内存、硬盘、控制台。

 

 

 

 

Java 装饰类(一般定义在构造方法中)和继承对比:

 

 

1.装饰模式比继承更灵活,且减少了类的臃肿性

 

2.避免了继承的臃肿,而且降低了类与类之间的关系

 

3.装饰类因为增强了已有对象,具备的功能和已有的是相同的,只不过提供了更强的功能,所以装饰类和被装饰类是属于同一个体系的

 

 

 

Java代码:

 

 

import java.io.*;
class SystemInDemo
{
	public static void main(String[] args) throws IOException
	{
		//获取键盘录入对象
		//InputStream in =System.in;
		
		//将字节流对象装换为字符流对象,使用转换流。InputStreamReader
		//InputStreamReader isr = new InputStreamReader(System.in);
		
		//为了提高效率,将字符串进行缓冲技术高效操作
		BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
//装饰设计模式		
		OutputStream out = System.out;
		OutputStreamWriter osw = new OutputStreamWriter(out);
		BufferedWriter bw = new BufferedWriter(osw);
		
		
		String line = null;
		
		while((line = bfr.readLine())!=null)
		{
			if("over".equals(line))
				break;
			//System.out.println(line);
			bw.write(line.toUpperCase());
			bw.newLine();
			bw.flush();
		}
		bw.close();
		osw.close();
		out.close();
		bfr.close();
		isr.close();
		in.close();
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值