在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()方法是正对于缓冲流的