gpt4 book ai didi

java - 立即获得命令提示符输出?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:47 26 4
gpt4 key购买 nike

可能是一个误导性的标题,但多亏了回答我其他问题的人,我的程序才开始运行,但现在不确定该怎么做。

这是我运行命令提示符命令并返回输出的方法

public static String cmdExec(String cmdLine) {
String line;
String output = "";
try {
Process p = Runtime.getRuntime().exec(cmdLine);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
output += (line + '\n');
}
input.close();
}
catch (Exception ex) {
ex.printStackTrace();
}

return output;
}

它按照我希望的方式工作,但现在当我运行此方法时,它会等到一切都完成,然后返回输出,这不是我想要的。

我做了一个使用 cmdExec 方法的 ping 泛洪方法。这是我调用 cmdExec() 的方式

String[] input = ipTextField.getText().split(":");

if(input.length == 2) {
System.out.println(cmdExec("cmd /c ping " + input[0] + " -t -n " + Integer.parseInt(input[1])));

现在举例来说,如果我在我的程序中键入“127.0.0.1:3”,它将向本地主机发送 3 个数据包。现在这里的问题是,不是打印出我从命令提示符 1 到 1 输出的行,而是要等到所有 3 个数据包都发送完毕,然后打印输出完整输出。

如果我在命令提示符下键入“ping 127.0.0.1 -t -n 3”,它将逐一打印答复,而不是一次全部打印,那么我将如何在我的程序中执行相同的操作?

最佳答案

代替

while ((line = input.readLine()) != null) {
output += (line + '\n');
}

要立即将结果输出到命令行,只需在 while 循环内打印

     while ((line = input.readLine()) != null) {
System.out.println(line);
output += (line + '\n');
}

关于java - 立即获得命令提示符输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com