作用:打印流可以实现方便、高效的打印数据到文件中去。
高效体现在用到了缓冲流:
- 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。
支持写字节数据。
支持写字符数据。
- /**
- 目标:学会使用打印流 高效 方便写数据到文件。
- */
- 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("望帝春心托杜鹃");
- }
- }