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