2014-01-19 28 views
2

有没有办法来询问DataInputStream是否有内容可读? .readByte()将只挂了,等待一个字节读取:(还是我总是要送一个假字节,以确保它总是能看到一些检查DataInputStream是否有内容

回答

4
dis.available(); 

返回:? 的估计的,可以从该输入流中可无阻塞读取(或跳过)的字节数。

这是你在寻找什么?

还要检查答案在这里,你可能会得到更多的信息。"available" of DataInputStream from Socket

+0

然后尝试从它读取,然后读数据看

public int available() throws IOException 

。如果它真的没有返回任何东西。那么它的空和available();作品喜欢它shoud –

+1

如果你点击该链接,你应该好好想法如何在循环中做到这一点,也有答案解释了为什么它在某些情况下返回0,检查文档* DIS *以及。 –

+0

现在好了使用PushBackInputStream和dis,pbs为available,dis为休息;) – Pwnie2012

1

根据文档为“返回可读取的字节数的估计值”

所以你应该叫dis.available()