在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWrite)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。
看一下PrintStream的构造方法:
public PrintStream(OutputStream out)
在PrintStream中定义的构造方法中可以清楚的发现有一个构造方法可以直接接收OutputStream类的实例,这是因为与 OutputStream相比起来,PrintStream可以更加方便的输出数据,这就好比将OutputStream类重新包装了一下,使之输出更加 方便。
使用PrintStream输出信息:
1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.PrintStream; 5 6 public class Test24 { 7 public static void main(String[] args) throws IOException { 8 File f = new File("d:" + File.separator+"test.txt"); 9 PrintStream output=new PrintStream(new FileOutputStream(f)); 10 output.println("Hello World!"); 11 output.print("1+1="+2); 12 output.close(); 13 } 14 }
也就是说此时,实际上是将FileOutputStream类的功能包装了一下,这样的设计在java中称为装饰设计。
但如果仅仅是上面的那些功能也未免太寒碜了吧,好吧,看绝招,大家学过C吧~:
1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.PrintStream; 5 6 public class Test25 { 7 public static void main(String[] args) throws IOException { 8 File f = new File("d:" + File.separator+"test.txt"); 9 PrintStream output=new PrintStream(new FileOutputStream(f)); 10 String name="Jim"; 11 int age=20; 12 float score=90.5f; 13 char sex='M'; 14 output.printf("姓名:%s 年龄:%d 成绩:%f 性别:%c", name,age,score,sex); 15 output.close(); 16 } 17 }
哈哈,竟然有printf!~而且你要是觉得%s %d %f %c太麻烦,可以全用%s代替,比C的printf还好用