如何在不阻塞的情况下从Java中的BufferedReader读取?

我想向服务器发送命令,并确定是否得到响应。

现在,我正在使用BufferedReaderreadline()函数,该函数会阻塞直到服务器发出响应,但我要做的就是首先确认服务器是否响应。

我尝试使用ready()reset()避免此阻止,但这无济于事。

这导致我的程序陷入等待服务器响应的困境,这种情况永远不会发生。InputStreamReader根据我对事物的理解,似乎做同样的事情。

我在此处找到的关于该主题的其他问题没有回答我的问题,所以请您回答我的问题会很好。

回答:

可能您所需要的只是InputStream无需将其包装在BufferedReader

while (inputStream.available() > 0) {

int i = inputStream.read(tmp, 0, 1024);

if (i < 0)

break;

strBuff.append(new String(tmp, 0, i));

}

我希望这有帮助。

以上是 如何在不阻塞的情况下从Java中的BufferedReader读取? 的全部内容, 来源链接: utcz.com/qa/418188.html

回到顶部