我正在使用java的InputStreamReader read()函数。当我到达输入流的末尾时,我应该进入我的int变量-1的值,但它转到阻塞。 为什么我不在输入流的末尾得到-1? (我已逐字母调试它,确保它实际上是输入结束并且连接套接字是活的)。
使用ready()函数是一个很好的解决方案:
if (isr.ready())
currCharVal = isr.read();
提前致谢, 盖
答案 0 :(得分:4)
如果另一端未关闭连接,则会发生这种情况。当套接字关闭时,read()将返回-1。
根据我的经验,使用就绪和可用是相当不可预测的。我会读取(byte [])直到达到结束并期望另一端在完成时关闭。