-1

直接从API

public int available() 抛出 IOException

返回可以从此输入流中读取(或跳过)的字节数的估计值,而不会被下一次调用此输入流的方法阻塞。下一次调用可能是同一个线程或另一个线程。单次读取或跳过这么多字节不会阻塞,但可能会读取或跳过更少的字节。

请注意,虽然 InputStream 的某些实现会返回流中的字节总数,但许多不会。使用此方法的返回值来分配旨在保存此流中所有数据的缓冲区是不正确的。

如果此输入流已通过调用 close() 方法关闭,则此方法的子类的实现可以选择抛出 IOException。

InputStream 类的可用方法总是返回 0。

这个方法应该被子类覆盖。

我不能完全掌握这种方法的可能用法的概念。任何人都可以举一个现实生活中的例子吗?提前致谢。

4

1 回答 1

1

20 多年来,我一直在寻找一个真实的例子。

它如何工作取决于流。对于某些流,它根本不起作用。对于缓冲流,它通过返回缓冲区中未读的数量加上嵌套流的 available() 来工作。对于套接字和文件,它执行系统调用。

于 2013-06-21T12:50:33.940 回答