我正在实施一个使用通用阅读界面的设施。我正在使用java.lang.Readable接口,它使用CharBuffer将数据写出来。
它没有说明read
来电是否会阻止。但它会返回写入缓冲区的字符数量,但对我来说,它也可以表明缓冲区没有足够的空间来写入整个等待输入,因此只写了部分内容。但是如果缓冲区有足够的空间,但是没有输入(或者缓冲区可以容纳的字符数少于),会发生什么? read
会返回零(或一个小整数)还是会阻塞?
答案 0 :(得分:2)
是的,它会阻止。操作完成后,此方法返回添加到缓冲区的char值的数量,如果此字符源位于其末尾,则返回-1。
答案 1 :(得分:1)
如果它是非阻塞的,则必须有一种机制,以便在它变得可读时通知。所以它不能无阻塞。