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();
}
}
}