【发布时间】:2013-07-31 11:25:19
【问题描述】:
一些程序以用户体验的方式向 bash 生成输出,例如更改值的字符串而不是打印的行(bash 向下滚动以显示所有更改的输出)。这种现象叫什么?它是如何在例如 java 程序或 bash 脚本中实现的。如何解析输出?它只是打印新行但使用一些特殊功能吗?
top 是一个使用这种输出数据“现象”的程序
使用了Okey光标。
那么我如何在 java 中解析它们呢?我试过这段代码,但它没有打印任何东西
public static void exeTest(String [] args) throws IOException{
if (args.length <= 0) {
System.out.println("empty command");
return;
}
Process process = new ProcessBuilder(args).start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.printf("Output of running %s is:",
Arrays.toString(args));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
感谢所有好的答案,我现在对这个主题更加熟悉,即使你仍然无法解析像 java 中从顶部开始的程序输出。我会结束这个问题并做更多关于如何在java中解析它的研究。然后我可能会开始另一个更具体的关于在 java 中解析输出的内容。
【问题讨论】:
-
top等应用程序利用curses来实现您所描述的内容。