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开头的类采用了装饰者设计模式