Java IO学习笔记(七):打印流
在整个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还好用