关于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();//加上这个就会在数据前自动加上大小及最后一个0
out.close();
------解决方案--------------------应该不需要加0的
------解决方案--------------------
会在返回的数前面加上一个以16进制表示的数据大小,以及最后面加个0
把这个贴出来看一下
------解决方案--------------------
不需要,你随便找个Servlet,基本上都不会看到调用flush的,除非有很特殊的实时性需要。
------解决方案--------------------怀疑是编码的问题.
LZ的java文件是什么编码?客户端用的是什么编码?
------解决方案--------------------flush()方法是正对于缓冲流的