PrintWriter 与 ServletOutputStream的区别

原创 2007年09月13日 17:38:00
1. PrintWriter是以字符为单位,对所有的信息进行处理,而ServletOutputStream仅对二进制的资料进行处理。
2. PrintWriter在输出字符文本时内部需要将字符串转换成某种字符集编码的字节数组,使用他的好处就是不需要自己来完成从字符串到字节数组的转换。 转换的字符集编码是通过设置setContentTpye或setCharacterEncoding或setLocale等方法实现的;使用ServletOutputStream对象直接从一个字节输入流中读取出来,然后再原封不动的输出到客服端。
3. 这两个方法相互排斥,只能调用其一,如果要用,则要在换方法之前调用flush(),将缓冲区数据冲掉。
4. PrintWriter自动清空缓冲区的功能被使能时(构造函数中autoFlush置为true),仅当println()方法被调用时才自动清缓冲区,而不是像PrintStream一样遇到一个换行符就清缓冲。 

两种方法的取舍:
使用PrintWriter会占用一些系统开销,因为它是为处理字符流的输出输出功能。因此PrintWriter应该使用在确保有字符集转换的环境中。换句话说,在你知道servlet返回的仅仅是二进制数据时候,应该使用ServletOutputStream,这样你可以消除字符转换开销,当servlet容器不用处理字符集转换的时候。

附:写文件最佳组合  
  PrintWriter   out   =   new   PrintWriter(  
          new   BufferedWriter(  
                new   FileWriter(filename)))  
  PrintWriter   提供print系方法  
  BufferedWriter   提供缓冲,用以加速  
  FileWriter   用于写文件
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

PrintWriter与ServletOutputStream的区别之文件下载

先看代码 第一种: out = response.getWriter(); response.reset(); response.addHeader("Content-Disposition"...

printStream 和printWriter区别

区别1: rintStream类和PrintWriter类  PrintStream主要操作byte流,而PrintWriter用来操作字符流。读取文本文件时一般用后者。 java的...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

PrintWriter中write与println方法的区别

最近写了一个网络编程的小程序,即服务端与客户端相互发送信息即可。在其中发现了一些问题,就是在往IO流中写数据的问题。其中的write()方法,本身不会写入换行符,如果用write()写入了信息,在另一...

PrintWriter和BufferedWriter的使用区别

BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。Buff...

PrintWriter与JspWriter的区别与联系

SERVLET中OUT的类型是printwriter,通过RESPONSE.GETWRITER()获得。  JSP转成SERVLET后OUT的类型是jspwriter,通过PAGECONTENT.G...

关于PrintWriter中的print与println方法的区别

今天在写一个关于socket的程序,无意间把PrintWriter中的print与println混淆了,于是写了个小demo测试了一下,代码如下: 服务端代码:package com.city.se...

printWriter的write(String x)和println(String x)区别分析

当当当当~第一篇技术博客来了,虽然是非常简单非常小白的一篇分析,但毕竟是一个开始。以后这些东西都不再只躺在我的有道云笔记里了,so,必须更加严谨,更加扎实的理解和总结~前言: 在写一个socket通...

java中PrintStream和PrintWriter的区别

Java 输出流中的PrintStream 和 PrintWriter有什么区别,好像很多场合都能混用。比如用于网络间通信,发送消息时,可用PrintStream 也可用 PrintWriter ...

JAVA printWriter中write()和println()区别(特别注意)

学习socket编程一定要注意的事项

ServletOutputStream回写页面乱码

一段utf-16的string,整了好多种格式,硬是无法正确输出到页面上:   首先尝试了outputstream, 即便指定string-》byte[]的编码,还是出错   ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)