当前位置: 代码迷 >> Java相关 >> 问题已经找到,谁来解释一下为什么?
  详细解决方案

问题已经找到,谁来解释一下为什么?

热度:59   发布时间:2007-04-03 13:30:12.0
问题已经找到,谁来解释一下为什么?


不知是哪里出错了,关于socket的问题,请大家帮我看看是哪里有问题

本来我是使用BufferedReader,和BufferedWriter在Socket连接中使用数据流,BufferedWriter收不到数据.
后来我把BufferedWriter必为PrintWriter后就可以了.

这是为什么?

BufferedWriter不能在这里使用么?
是不是BufferedWriter只能用在对文件的写数据中作用?在屏幕中不能使用?

[此贴子已经被作者于2007-4-3 14:41:29编辑过]

搜索更多相关的解决方案: 屏幕  解释  Socket  数据  PrintWriter  

----------------解决方案--------------------------------------------------------

关键代码帖出来


----------------解决方案--------------------------------------------------------
回复:(ice00mouse)谁来帮帮看看是哪里错了?

是不是不能用BufferedReader in; 和 BufferedWriter out;
来进行数据的传输啊?


----------------解决方案--------------------------------------------------------
貌似在这里出了问题
while(!done)
{
System.out.println("试一试");
str=in.readLine();
if(str!=null)
{
out.write(str);
System.out.println(str);
frame.setMessage(str);
if(str.equals("bye"))
done=true;
}
else
{
System.out.println("内容为空");
}
}
我将System.out.println("试一试");放在str=in.readLine();之后,,,后台不能打印出"试一试".
将System.out.println("试一试");放在str=in.readLine();之前,,,后台就可以打印出来.

看来是str=in.readLine();出了问题.可是这是为什么呢?是什么问题?

----------------解决方案--------------------------------------------------------

没有清空缓冲区


----------------解决方案--------------------------------------------------------

在调用BufferedWriter试着调用一下flush(),强制输出


----------------解决方案--------------------------------------------------------
恩  我也不怎么清楚哦
----------------解决方案--------------------------------------------------------
我一会试试

我使用PrintWirter就可以了,
不过我再试调用BufferedWriter的flush()方法看看行不行.
谢谢上面几位


----------------解决方案--------------------------------------------------------