当前位置: 代码迷 >> Java Web开发 >> 关于PrintWriter的flush()方法,该怎么处理
  详细解决方案

关于PrintWriter的flush()方法,该怎么处理

热度:1449   发布时间:2013-02-25 21:16:50.0
关于PrintWriter的flush()方法
在web编程中需要返回数据给客户端时都是采用PrintWriter,获取一个输出流对象采用以下方法!奇怪的是当调用了flush()方法后,会在返回的数前面加上一个以16进制表示的数据大小,以及最后面加个0,请问这是怎么回事?谁给我解释下!做这客户端那边的老大给我下难题了,要我给他个合理解释为什么会这样!

Java code
response.setContentType("text/xml");response.setCharacterEncoding("utf-8");PrintWriter out=null;try {    out=response.getWriter();    msg.append("<data>");    msg.append(sbf.toString());            msg.append("</data>");} catch (IOException e) {    // TODO Auto-generated catch block    e.printStackTrace();}out.print(msg.toString());out.flush();//加上这个就会在数据前自动加上大小及最后一个0out.close();




------解决方案--------------------------------------------------------
应该不需要加0的
------解决方案--------------------------------------------------------
会在返回的数前面加上一个以16进制表示的数据大小,以及最后面加个0


把这个贴出来看一下
------解决方案--------------------------------------------------------
不需要,你随便找个Servlet,基本上都不会看到调用flush的,除非有很特殊的实时性需要。
------解决方案--------------------------------------------------------
怀疑是编码的问题.
LZ的java文件是什么编码?客户端用的是什么编码?

------解决方案--------------------------------------------------------
flush()方法是正对于缓冲流的
  相关解决方案