开课吧Java课堂之PrintWriter类的运用

192 阅读1分钟

尽管Java允许用System.out向控制台写数据,但建议仅用在调试程序时或在例题中,对于实际的程序,Java推荐的向控制台写数据的方法是用PrintWriter流。PrintWriter是基于字符的类。用基于字符类向控制台写数据使程序更为国际化。

PrintWriter定义了多个构造函数,我们所用到的一个如下:

PrintWriter(OutputStream outputStream, boolean flushOnNewline) 

这里,outputStream是OutputStream类的对象,flushOnNewline控制Java是否在println( )方法被调用时刷新输出流。如果flushOnNewline为true,刷新自动发生,若为false,则不发生。

PrintWriter支持所有类型(包括Object)的print( )和println( )方法,这样,你就可以像用System.out那样用这些方法。如果遇到不同类型的情况,PrintWriter方法调用对象的toString( )方法并打印结果。

用PrintWriter向外设写数据,指定输出流为System.out并在每一新行后刷新流。例如这行代码创建了与控制台输出相连的PrintWriter类。

PrintWriter pw = new PrintWriter(System.out, true);

下面的应用程序说明了用PrintWriter处理控制台输出的方法:

// Demonstrate PrintWriter 
import java.io.*; 
public class PrintWriterDemo { 
 public static void main(String args[]) { 
 PrintWriter pw = new PrintWriter(System.out, true); 
 pw.println("This is a string"); 
 int i = -7; 
 pw.println(i); 
 double d = 4.5e-7; 
 pw.println(d); 
 } 
}

该程序的输出如下:

This is a string 
-7 
4.5E-7

记住,在你学习Java或调试程序时用System.out向控制台写简单文本输出是没有错的。但是使用PrintWriter使实际的应用程序更容易国际化。