用Java获取连续(无限)终端程序的输出

时间:2015-02-18 21:41:27

标签: java bash shell terminal

基本上我正在运行一个需要连续输入的程序。直到您输入“@”符号并按Enter键才会结束。我想知道如何从这个程序读取输出,因为当我尝试获取BufferedReader内容时,当前(我推断的是)“readLine()块”。目前的代码如下。我已经使用和没有while循环完成它,无论哪种方式程序永远不会到达终点,向我表明readLine()是问题所在。

该程序的一个例子就是这样的 input a number: 2 You input 2 input a number: 3 You input 3 input a number: @ exit

这不是程序,而是它的基本要点和行为方式。我需要得到每一点输出。输入是另一个故事;现在认为这与问题无关,因为我现在还没有。

我的代码如下。

ProcessBuilder pb = new ProcessBuilder(cmd); Process p = pb.start(); BufferedReader terminalOutput = new BufferedReader( new InputStreamReader(p.getInputStream()) ); BufferedWriter terminalInput = new BufferedWriter( new OutputStreamWriter(p.getOutputStream()) ); String line = ""; String s = ""; int count = 0; line = terminalOutput.readLine();

0 个答案:

没有答案