我正在实现使用通用读取接口的工具。我正在使用java.lang.Readable接口,该接口使用CharBuffer写入数据。

它没有说的是read调用是否会阻塞。但是,它确实返回了写入缓冲区的字符数量,但是对我来说,它还可以指示缓冲区没有足够的空间来写入整个等待的输入,因此只写了一部分。但是,如果缓冲区有足够的空间,但没有可用的输入(或字符数少于缓冲区可容纳的数量),会发生什么? read会返回零(或较小的整数)还是会阻塞?

最佳答案

是的,它阻止了。操作完成后,此方法返回添加到缓冲区的char值的数目;如果此字符源在其末尾,则返回-1。

09-11 18:00