如何在短时间内停止缓冲的阅读器输出?

问题描述

这可能是一个逻辑上的问题,但这是可行的。

我正在为Spring项目使用一个缓冲读取器,该读取器将连续接收telnet连接的输出-

BufferedReader inBuff = new BufferedReader(new InputStreamReader(telnet.getClient().getInputStream(),"UTF-8"));
            
while (((line = inBuff.readLine()) != null) || ((line = inBuff.readLine()) != "\r\n"))
 {

  do something with the lines

}

但是我要定期将命令发送到同一telnet连接,并从另一个类接收输出

                telnetSession.send(writeCmd,true) ;
                Thread.sleep(ProbeConstants.readTimeWait*1000);
                logger.info(data.getDevice() + " send Cmd " + writeCmd ) ;
                resultTmp  = telnetSession.readResponse() ;

但是问题是,不是从上述resultTmp变量中获取命令的结果,而是从缓冲的读取器中获取命令的结果。我可以从日志中看到它。

我尝试使用while循环将带有标志的缓冲包装的读取器包装起来,该标志的值将设置为true,然后在发送命令的处理程序中将其设置为false,但是它似乎不起作用。我仍然得到输出以及缓冲的读取器输出

谁能告诉我如何解决此问题,并在我发送命令的持续时间内停止缓冲的读取器,并在其他处理程序中返回输出。 ?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)