Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

Java打印流与Java装饰者设计模式

PrintStream

package com.wkcto.chapter06.filterstream;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;

/**
 * PrintStream
 * 	字节打印流
 * @author 蛙课网
 *
 */
public class Test03 {

	public static void main(String[] args) throws FileNotFoundException {
		//在追加的方式建立与文件的字节流通道
		OutputStream out = new FileOutputStream("d:/log.txt", true);
		//创建打印流
		PrintStream  pStream = new PrintStream(out);
		
		pStream.print("hello");			//打印,不换行
		pStream.println(" wkcto"); 		//打印,换行
		pStream.println("feifei");
		
        
		System.out.println("在屏幕上打印信息, System类的out成员就是一个PrintStream打印流");
		System.out.println("System.out代表系统的标准输出设备,显示器,");
		//修改System.out的打印输出方向
		System.setOut(pStream);
		System.out.println("现在打印的信息就不是显示在屏幕上了, 而是打印到pstream流中,即log.txt文件中");
		
		//有时, 也会把异常信息打印到日志文件中
		try {
			FileInputStream fis = new FileInputStream("F:/abc.txt");
		} catch (Exception e) {
			// 在开发时,一般是把异常打印到屏幕上,方便程序员调试
//			e.printStackTrace();
			// 在部署后, 经常把异常打印到日志文件中
			e.printStackTrace(pStream);
		}
	
		pStream.close();
	}

}

装饰者设计模式

设计模式就是别人总结的一套解决方案, 这套解决方案被大多数人熟知与认可

装饰者设计模式是对现有类的现有方法进行功能的扩展

在IO流相关类中,以Filter开头的类采用了装饰者设计模式