Alb*_*ore 56 java inputstream blocking
InputStream.available()
在Java中做什么?我阅读了文档,但我还是无法解决.
医生说:
返回可以从此输入流中读取(或跳过)的字节数,而不会被此输入流的方法的下一个调用方阻塞.下一个调用者可能是同一个线程或另一个线程.
类InputStream的可用方法始终返回0.
阻止是什么意思?它只是意味着同步通话吗?
最重要的是,该available()
方法的目的是什么?
Viv*_*sse 40
在InputStreams中,read()
调用被称为"阻塞"方法调用.这意味着如果在方法调用时没有可用的数据,该方法将等待数据可用.
该available()
方法告诉您在read()
调用将阻止程序的执行流程之前可以读取多少字节.在大多数输入流上,所有调用read()
都是阻塞,这就是默认情况下可用返回0的原因.
但是,在某些流(例如BufferedInputStream
,具有内部缓冲区)上,一些字节被读取并保存在内存中,因此您可以在不阻塞程序流的情况下读取它们.在这种情况下,该available()
方法会告诉您缓冲区中保留了多少字节.
归档时间: |
|
查看次数: |
53833 次 |
最近记录: |