我正在用Java编写一个简单的聊天,我想检查是否有一些数据等待BufferedReader
。我读过关于NIO的文章,但我并没有完全理解它。以下是我的一些代码:
public void Send(String data)
{
out.println(data);
}
public String Recv()
{
if (dataIncomming)
{
try {
return in.readLine();
} catch (IOException e) {
System.err.println("Send: Error on BufferedReader.readLine() - IOException");
}
}
else return "";
}
我不知道填写dataIncomming
...
答案 0 :(得分:8)
使用Stream.Available()方法。您可能还想等到收到正确数量的字节并等待,以便线程不会100%运行。
while(Stream.Available() != 0); //block until there is data
try{
return in.readLine();
} catch (IOException e) {
System.err.println("Send: Error on BufferedReader.readLine() - IOException");
}
答案 1 :(得分:0)
您可以使用InputStream.available()方法来检查套接字输入流上当前已到达多少字节。
public String Recv()
{
if (in.available() > 0)
{
try {
return in.readLine();
} catch (IOException e) {
System.err.println("Send: Error on BufferedReader.readLine() - IOException");
}
}
else return "";
}