首页 > 代码库 > 流之阅读器和书写器(PrintWriter)

流之阅读器和书写器(PrintWriter)

PrintWriter类用于取代java 1.0的PrintStream类,它能正确地处理多字节字符集和国际化文本。Sun最初计划废弃PrintStream而支持PrintWriter,但当它意识到这样做会使太多现在的代码失效(尤其是依赖于System.out的代码),就放弃了这种想法。尽管如此,新编写的代码还是应当使用PrintWriter而不是PrintStream。

除了构造函数,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)