4. 打印流
4.1 打印流构造方法
在整个IO包中,打印流是输出信息最方便的类,主要包括字节打印流(PrintStream)和字符打印流(PrintWriter)。打印流提供了非常方便的打印功能,可以打印任何的数据类型。如:小数、整数、字符串等。
PrintStream和PrintWriter都属于输出流,分别针对输出字节和字符。
PrintStream和PrintWriter提供了重载的print()、println()方法用于多种数据类型的输出。
PrintStream和PrintWriter不会抛出异常,用户通过检测错误状态获取错误信息。
PrintStream和PrintWriter有自动flush 功能。
·PrintStream类有下面几个构造方法:
PrintStream(OutputStream out)
PrintStream(OutputStream out, boolean auotflush)
PrintStream(OutputStream out, boolean auotflush, String encoding)
·PrintWriter类有下面几个构造方法:
PrintWriter(OutputStream out)
PrintWriter(OutputStream out, boolean autoflush)
PrintWriter(Writer out)
PrintWriter(Writerout, boolean autoflush)
其中autoflush控制在Java中遇到换行符(\n)时是否自动清空缓冲区,encoding是指定编码方式。
4.2 打印流常用方法
PrintWriter即使遇到换行符(\n)也不会自动清空缓冲区,只在设置了autoflush模式下使用了println方法后才自动清空缓冲区。PrintWriter相对PrintStream最有利的一个地方就是println方法的行为,在Windows的文本换行是"\r\n",而Linux下的文本换行是"\n",如果希望程序能够生成平台相关的文本换行,而不是在各种平台下都用"\n"作为文本换行,那么就应该使用PrintWriter的println方法时,PrintWriter的println方法能根据不同的操作系统而生成相应的换行符。
控制台打印:
import java.io.PrintWriter;
public class Test {
public static void main(String args[]){
// 通过System.out为PrintWriter实例化
PrintWriter out = new PrintWriter(System.out);
// 向屏幕上输出
out. println("Hello World!");
out.close(); //如果此句不写,则没有内容,跟PrintStream有区别
}
}
在文件中打印:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Test {
public static void main(String args[]) {
PrintWriter out = null;
File f = new File("d:\\temp.txt");
try {
// 由FileWriter实例化,则向文件中输出
out = new PrintWriter(new FileWriter(f));
} catch (IOException e) {
e.printStackTrace();
}
out.print("Hello World!" + "\r\n");
out.close();
}
}