方兆国 发表于 2013-04-13 22:34

PrintWriter的刷新问题

在Socket套接字通信中,服务器端有类似一下的代码,客户端通过死循环给服务器端发送查询数据库的命令,可是用一下不同的方法会出现不同的输出结果
主要是要让Android客户端访问数据库,我想不出其他办法,只好使用这个方法

PrintWriter out;
for (i = 0; i < row; i++)
{
   out.append(date.toString());
}
out.println();
out.flush();

如果修改为
out.println(date.toString());
或者
out.append(date.toString()+"\n");
可是通过对输出重定向的文件来看,程序只能运行到一半

如果用最上面的那种方法,稍微等一会儿的话,重定向文件可以达到1.5G左右
可是使用下面两种方法的话,顶破天也就是40K的文件大小
不知道问题出在哪儿了

怎么解决,谢谢大家

如果大家有更好的方法,那么非常感谢

方兆国 发表于 2013-04-14 08:51

经过验证,本人发现在出现换行的地方,如out.println(date.toString());,out.append(date.toString()+"\n");的地方才有此类错误,而替换为out.print(date.toString());,out.append(date.toString());就可以正常运行
很好奇为什么会有这种现象呢
如果是语句错误,那就不应该出现仅可以循环几次,而不能死循环的现象

pitonas 发表于 2013-04-14 08:58

本人很好奇为什么会有这种现象呢?

方兆国 发表于 2013-04-14 09:02

回复 3# pitonas


    我也很好奇,因此才发帖咨询的

服务器端程序和客户端程序通过Socket套接字通信,客户端发送指令,服务器端查询数据并且给客户端回馈数据,这个问题就是在服务器端向客户端回馈数据的时候产生的
页: [1]
查看完整版本: PrintWriter的刷新问题