打印流的定义如下:
public class PrintStream extends FilterOutputStream implements Appendable, Closeable |
观察到PrintStream是OutputStream的孙子类,继续观察其构造方法PrintStream(OutputStream out),通过这个方法发现,其参数居然是他的爷爷类,在java当中我们称这种设计的模式叫做装饰模式,这样可以根据OutputStream的子类的不同来选择向不同的地方进行打印。
package obc17;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class OopDemo08 {
public static void main(String[] args) {
String path = "E:\\Maori";
File txtFile = new File(path+"\\IODemo.txt");
PrintStream ps = null;
try {
ps = new PrintStream(new FileOutputStream(txtFile,true));
ps.print("万能的打印流");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
ps.close();
}
}
}
发现打印流可以不用关注流的打印方式,只要合适地实例化OutputStream的子类,就能将流输出到我们想要的地方,所以很多情况下我们使用PS来进行输出。