代码之家  ›  专栏  ›  技术社区  ›  Armen Michaeli

是否调用java.lang.Readable.read块?

  •  1
  • Armen Michaeli  · 技术社区  · 11 年前

    我正在实现一个使用通用阅读接口的设施。我使用的是java.lang.Readable接口,该接口使用CharBuffer将数据写入。

    它没有说明的是 read 呼叫将被阻止。然而,它确实返回了缓冲区中写入的字符数量,但对我来说,这也可能表明缓冲区没有足够的空间来写入整个等待输入,所以只写入了其中的一部分。但是,如果缓冲区有足够的空间,但没有可用的输入(或者比缓冲区可以容纳的字符更少),会发生什么?将 阅读 返回零(或一个小整数),还是它会阻塞?

    2 回复  |  直到 11 年前
        1
  •  2
  •   Anthony    11 年前

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

        2
  •  1
  •   irreputable    11 年前

    如果它是非阻塞的,那么必须有一种机制来通知它何时变得可读。所以它不可能是非阻塞的。