Java IO学习笔记(七):打印流

来源:互联网 发布:知乎痴情叔被骂 编辑:程序博客网 时间:2024/06/05 11:02

在整个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还好用