我使用nload来获取实时带宽。我想使用java来收集这些数据,并将它们转储到一个文件中。但它不能与正常的代码一起工作。它什么也没显示。谁能告诉我如何使用像nload或top这样的命令行获取数据?它们显示的是动态数据,而不是输出像pwd或ls这样的静态字符串。
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec("top");
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}发布于 2015-01-14 06:55:23
我已经解决了我的问题,但我仍然想分享我的解决方案。
给定top将刷新输出,实际上它不会转储输出,因此它只需要转储数据一次,然后停止刷新。
Linux:
top -bn1
OS X:
top -l 1因此,您可以像往常一样捕获输出。
https://stackoverflow.com/questions/27929142
复制相似问题