Java IO流 -> 处理流 -> 打印流
- PrintWriter & PrintStream
- 都属于输出流,分别针对于字符流和字节流。
- 提供了重载print、println方法用于多种数据类型的输出。
- 输出操作不会抛出异常,用户通过检测错误状态来获取错误信息。
- 有自动flush功能。
import java.io.*;
/**
* 测试PrintWriter和PrintStream
*/
public class TestPrint {
public static void main(String[] args) {
TestPrint.testPrintStream();
testPrintWriter();
}
/**
* 测试字符打印流
*/
public static void testPrintWriter(){
try (Writer out = new FileWriter("printWriter.txt")){
PrintWriter pw = new PrintWriter(new BufferedWriter(out),true);
pw.println(" try (Writer out = new FileWriter(\"printWriter.txt\")){");
pw.println("PrintWriter pw = new PrintWriter(new BufferedWriter(out),true);");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 测试字节打印流
*/
public static void testPrintStream(){
System.out.println("输出数据:");
PrintStream ps = System.out;
ps.println(true);
try (OutputStream out = new FileOutputStream("printStream.txt")){
//添加BufferedOutputStream提高效率
ps = new PrintStream(new BufferedOutputStream(out),true);
ps.println("wangjiaoaaaaaaaa");
//ps.flush();
//重新设置目的地
System.setOut(ps);
System.out.println("重定向System.out");
//重新指定到控制台
ps = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.out)),true);
System.setOut(ps);
System.out.println("System.out重新指定到控制台");
} catch (IOException e) {
e.printStackTrace();
}
}
}