首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Printwriter和OutputStream有什么不同

Printwriter和OutputStream有什么不同
EN

Stack Overflow用户
提问于 2011-07-30 22:20:04
回答 2查看 19.8K关注 0票数 17

首先,我们有PrintWriter

代码语言:javascript
复制
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

代码语言:javascript
复制
 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();

有什么不同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-30 22:22:39

OutputStreams用于二进制数据。编写器(包括PrintWriter)适用于文本数据。

您可能看不到特定情况下的差异,因为您调用的PrintWriter.write(int)只写入单个字符-如果您使用的字符编码只是将字符映射到相同的字节,对于小于127的字符,那么您将看到相同的结果。但是如果你给它一个不同的编码,你就会看到不同。

PrintWriter的不同之处还在于它抑制IO异常- PrintStream也是如此,它是PrintWriter的二进制流的等价物。

票数 31
EN

Stack Overflow用户

发布于 2013-02-20 23:34:32

从这个java2novice.com link中,我提取了以下内容,这与Jon所说的类似:

ServletOutputStream: ServletResponse.getOutputStream() returns适用于在响应中写入二进制数据的ServletOutputStream。servlet容器不对二进制数据进行编码,而是按原样发送原始数据。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6883715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档