流之閱讀器和書寫器(PrintWriter)

PrintWriter類用於取代java 1.0的PrintStream類,它能正確地處理多字節字符集和國際化文本。Sun最初計劃廢棄PrintStream而支持PrintWriter,但當它意識到這樣作會使太多如今的代碼失效(尤爲是依賴於System.out的代碼),就放棄了這種想法。儘管如此,新編寫的代碼仍是應當使用PrintWriter而不是PrintStream。java

除了構造函數,PrintWriter類也有與PrintStream幾乎相同的方法集。包括:編程

public PrintWriter(Writer out)
public PrintWriter(Writer out,boolean autoFlush)
public PrintWriter(OutputStream out)
public PrintWriter(OutputStream out,boolean autoFlush)
public void flush()
public void close()
public boolean checkError()
public void write(int c)
public void write(char[] text,int offset,int length)
public void write(char[] text)
public void write(String s,int offset,int length)
public void write(String s)
public void print(boolean b)
public void print(char c)
public void print(int i)
public void print(long l)
public void print(float f)
public void print(double d)
public void print(char[] text)
public void print(String s)
public void print(Object o)
public void println()
public void println(boolean b)
public void println(char c)
public void println(int i)
public void println(long l)
public void println(float f)
public void println(double d)
public void println(char[] text)
public void println(String s)
public void println(Object o)

這些方法的行爲大多與PrintStream中相同。只有4個write()方法有所例外,它們寫入字符不是字節。此外,若是底層的書寫器能正確地處理字符集轉換,那麼PrintWriter的全部方法也能處理這種轉換。這是對非國際化的PrintStream類的改進,但對於網絡編程來講,仍然不太適合。很遺憾,PrintWriter也存在困擾PrintStream類的平臺依賴性錯誤報告信息量小等問題。網絡

下面咱們來看一下PrintWriter的簡單示例:函數

package io;

import java.io.PrintWriter;

public class PrintWriterDemo {
    public static void main(String[] args) {
        //true表示調用println時自動刷新輸出流
        PrintWriter pw  = new PrintWriter(System.out, true);        
        pw.println("外國人:ऐ");
    }
}
相關文章
相關標籤/搜索