在java中,当数据在流或管道上可用时,是否有通知的方法

时间:2017-10-01 16:39:08

标签: java io

我希望能够让一个线程等待一个或多个流/管道上的数据可用,然后轮询读取数据(然后再等待更多)

std::vector

1 个答案:

答案 0 :(得分:1)

标准Java IO API是一种阻塞实现。换句话说,如果你的线程看起来像一个循环:

byte[] input = ...;
while (stream.read(input) != -1)
{
    ...
}

然后该线程将阻塞,直到有从流中读取的内容(或流关闭,没有更多数据等),这些描述听起来就像你想要做的那样。

此外,从您的代码看起来您​​想要读取进程输出。确保从流程中排出其他流(如stderr),否则你将超出限制并获得例外。