2011-07-30 56 views
16
的区别

首先,我们为PrintWriter有什么的PrintWriter和OutputStream

java.io.File f=new java.io.File("s.txt"); 

    java.io.PrintWriter out=new java.io.PrintWriter(f); 

    out.print(5); 

    out.print(7); 

    out.close(); 

然后我们的OutputStream

java.io.File f=new java.io.File("s.txt"); 

java.io.FileOutputStream out=new java.io.FileOutputStream(f); 

    out.write(5); 

    out.write(7); 

    out.close(); 

请告诉我有什么区别?

回答

28

OutputStreams是指二进制数据。作家(包括PrintWriter)是指文字数据。

因为您打电话给PrintWriter.write(int)写单个字符 - 如果您使用的字符编码只是将字符映射到同一字节,对于小于127的字符,您可能看不到您的具体情况有所不同,那么您会看到相同的结果。但是,如果你给它一个不同的编码,然后你会看到一个区别。

PrintWriter也有所不同,因为它可以抑制IO异常 - 就像PrintStream一样,它是PrintWriter的二进制流。

2

从这个java2novice.com link我摘录如下,即类似于乔恩说:

ServletOutputStream的:ServletResponse.getOutputStream() returns一个ServletOutputStream 适合在响应写入二进制数据。小容器不编码二进制数据,它原样发送原始数据 。

的PrintWriter:ServletResponse.getWriter()返回PrintWriter对象,它发送 字符文本到客户端。 PrintWriter使用由getCharacterEncoding()返回的字符 编码。如果没有指定响应的 字符编码,则它会执行默认的 字符编码。

相关问题