Java 清除bufferedReader和块以获得更多输入

Java 清除bufferedReader和块以获得更多输入,java,fifo,Java,Fifo,我使用bufferedReader从FIFO队列读取数据,数据由C程序放入FIFO队列,该程序从UART读取数据(C程序尚未运行,因此我使用echo“test”>MY_FIFO进行测试) 我想让我的java程序阻塞直到有数据,并且只在有数据时执行。它第一次执行此操作,但一旦将某些内容放入fifo,fif.readLine()会重复返回null 有没有办法“重置”bufferedReader,以便下次调用readLine()时它会再次阻塞?目前我能想到的唯一解决办法是在阅读阅读器之后重新初始化它

我使用bufferedReader从FIFO队列读取数据,数据由C程序放入FIFO队列,该程序从UART读取数据(C程序尚未运行,因此我使用
echo“test”>MY_FIFO
进行测试)

我想让我的java程序阻塞直到有数据,并且只在有数据时执行。它第一次执行此操作,但一旦将某些内容放入fifo,
fif.readLine()
会重复返回null

有没有办法“重置”bufferedReader,以便下次调用
readLine()
时它会再次阻塞?目前我能想到的唯一解决办法是在阅读阅读器之后重新初始化它


编辑:我使用的队列是一个FIFO队列(一个文件),通过调用
mkfifo()

HF调试FIFO队列创建。只要底层数据源正确实现,所有基于流I/O的类都会隐式阻塞。不要责怪信使我不明白你的意思,我不是责怪信使(在这种情况下是bash)。我想它不是阻塞,因为它看到的是“流的尽头”,这是我不想要的,我希望流永远不会结束。不知道你在问什么。。。。你可以读这个。我认为您可以使用
Scanner
类-看这里是在内存中维护的队列,还是使用某种持久性存储介质(如文件)来存储队列数据?