概述
作用:打印流可以实现方便、高效的打印数据到文件中去。
高效体现在用到了缓冲流:
public PrintStream(OutputStream out, boolean autoFlush, Charset charset) {super(out);this.autoFlush = autoFlush;this.charOut = new OutputStreamWriter(this, charset);this.textOut = new BufferedWriter(charOut);}
打印流一般是指:PrintStream,PrintWriter两个类。
可以实现打印什么数据就是什么数据,例如打印整数97写出去就是97,打印boolean的true,写出去就是true。
PrintStream
支持写字节数据。
PrintWriter
支持写字符数据。
打印流示例
/**目标:学会使用打印流 高效 方便写数据到文件。*/
public class PrintDemo1 {public static void main(String[] args) throws Exception {// 1、创建一个打印流对象
// PrintStream ps = new PrintStream(new FileOutputStream("io-app2/src/ps.txt"));
// PrintStream ps = new PrintStream(new FileOutputStream("io-app2/src/ps.txt" , true)); // 追加数据,在低级管道后面加True
// PrintStream ps = new PrintStream("io-app2/src/ps.txt" );PrintWriter ps = new PrintWriter("io-app2/src/ps.txt"); // 打印功能上与PrintStream的使用没有区别ps.println(97);ps.println('a');ps.println(23.3);ps.println(true);ps.println("我是打印流输出的,我是啥就打印啥");ps.close();}
}
输出语句的重定向
/**目标:了解改变输出语句的位置到文件*/
public class PrintDemo2 {public static void main(String[] args) throws Exception {System.out.println("锦瑟无端五十弦");System.out.println("一弦一柱思华年");// 改变输出语句的位置(重定向)PrintStream ps = new PrintStream("io-app2/src/log.txt");System.setOut(ps); // 把系统打印流改成我们自己的打印流System.out.println("庄生晓梦迷蝴蝶");System.out.println("望帝春心托杜鹃");}
}