InputStream.available()
或BufferedInputStream.available()
在Java中的套接字编程中什么时候有用?
我的看法是,除非您知道“估计”有多好,否则该方法没有用。 对于连接到套接字的流,估计不可能在所有情况下都是可靠的。
问题在于该方法的返回值不区分已到达套接字上的流末尾的情况以及套接字上当前没有可用字符但可能会传递更多字符的情况。 根据 javadoc,两者都可以返回零。这种不确定性使得该方法几乎毫无用处。
在套接字情况(以及类似的情况)中,available()
底线是
available()
估计
。 javadoc 不保证该估计在所有可能的情况下有多可靠,并且实际上在某些情况下该估计不可能准确,因为这需要知道远程服务器将要做什么。对于http请求,可以用它来确定输入流中存在非零字节数吗?