1. 打印流
(1)分类:
• 字节打印流 PrintStream
• 字符打印流 PrintWriter
(2)打印流的特点:
• 只能写数据,不能读数据
• 只能操作目的地,不能操作数据源
• 可以操作任意类型的数据
• 如果启动了自动刷新,能够自动刷新
• 可以直接操作文本文件的
(3)附件的问题:哪些对象可以直接操作文本文件的呢?
• FileInputStream
• FileOutputStream
• FileReader
• FileWriter
• PrintStream
• PrintWriter
2. 打印流之 PrintWriter(字符打印流):
(1)PrintWriter基本使用:
1 package cn.itcast_03; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 public class PrintWriterDemo { 7 public static void main(String[] args) throws IOException { 8 // 作为Writer的子类使用 9 PrintWriter pw = new PrintWriter("pw.txt"); 10 11 pw.write("hello"); 12 pw.write("world"); 13 pw.write("java"); 14 15 pw.close(); 16 } 17 }
运行效果如下:
(2)PrintWriter操作任意类型的数据:
代码如下:
1 package cn.itcast_03; 2 3 import java.io.FileWriter; 4 import java.io.IOException; 5 import java.io.PrintWriter; 6 7 /* 8 * 1:可以操作任意类型的数据。 9 * print() 10 * println() 11 * 2:启动自动刷新 12 * PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true); 13 * 还是应该调用println()的方法才可以 14 * 这个时候不仅仅自动刷新了,还实现了数据的换行。 15 * 16 * println() 17 * 其实等价于: 18 * bw.write(); 19 * bw.newLine(); 20 * bw.flush(); 21 */ 22 public class PrintWriterDemo2 { 23 public static void main(String[] args) throws IOException { 24 // 创建打印流对象 25 // PrintWriter pw = new PrintWriter("pw2.txt"); 26 PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true); 27 28 // write()是搞不定的,怎么办呢? 29 // 我们就应该看看它的新方法 30 // pw.print(true); 31 // pw.print(100); 32 // pw.print("hello"); 33 34 pw.println("hello"); 35 pw.println(true); 36 pw.println(100); 37 38 pw.close(); 39 } 40 }
运行效果,如下: