什么是InputStream.available()
do in Java?我阅读了文档,但仍然无法理解。
医生说:
返回可以从此输入流读取(或跳过)的字节数,而不会被该输入流的方法的下一个调用者阻塞。下一个调用者可能是同一个线程或另一个线程。
InputStream 类的可用方法始终返回 0。
他们的意思是什么blocking?它只是意味着同步调用吗?
最重要的是,这样做的目的是什么available()
method?
在输入流中,read()
调用被称为“阻塞”方法调用。这意味着,如果在方法调用时没有可用数据,则该方法将等待数据可用。
The available()
方法告诉您可以读取多少字节,直到read()
call 将阻塞程序的执行流程。在大多数输入流上,都调用read()
是阻塞的,这就是 available 默认返回 0 的原因。
但是,在某些流上(例如BufferedInputStream
,有一个内部缓冲区),一些字节被读取并保存在内存中,因此您可以在不阻塞程序流的情况下读取它们。在这种情况下,available()
方法告诉您缓冲区中保留了多少字节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)