使用流操作对象的时候,如何明确该使用哪个对象来操作。
三个条件:
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();
}
}