为了解决输出数据时的功能不足,所以在java.io包里面又提供了一套专门的用于输出数据的类;PrintStream(打印字节流)、PrintWriter(打印字符流)
观察PrintStream类的继承与构造方法:
// 继承
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.io.PrintStream
构造方法:public PrintStream(OutputStream out)
在PrintStream类里面提供有一系列的print() 、println()方法,这些方法支持各种数据类型的输出,如果使用了PrintStream类,就不会使用write()方法了。
但是这个操作过程之中,发现虽然操作的形式不同了,但是本质依然是基于OutputStream类的方法完成的,这样的设计模式,成为装饰设计模式:将一个功能不足的操作类,通过某些类的包装,形成更好的工具类。
范例:打印流
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
/**
* @author liuwq
* 打印流
*/
public class PrintStreamTest {
public static void main(String[] args) throws Exception {
PrintStream ps = new PrintStream(new FileOutputStream(new File(
"D:" + File.separator + "Document" + File.separator + "Document" + File.separator + "test1.txt")));
ps.print("Hello ");
ps.println("World ");
ps.print(1 + 1);
ps.println();
ps.println(1 + 1 + 1);
ps.close();
}
}
在以后的开发过程之中,只要是由程序输出内容,都会采用打印流的模式完成,但是打印流依然需要OutputStream的支持。