我正在尝试获取ping结果的最后一行。 我不是一个java开发人员。我正在学习,请承担我的错误。
这是我写的程序。
private static String pingTest(String ip) {
// TODO Auto-generated method stub
String pingResult = "";
// System.out.println("Came in pingTest");
String pingCmd = "ping -c 3 " + ip;
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
pingResult += inputLine;
}
in.close();
} catch (IOException e) {
System.out.println(e);
}
return pingResult;
我得到的结果如下:
PING google.com(74.125.236.165)56(84)字节的数据.64字节来自 maa03s16-in-f5.1e100.net(74.125.236.165):icmp_req = 1 ttl = 52 time = 20.5 来自maa03s16-in-f5.1e100.net的ms64字节(74.125.236.165):icmp_req = 2 来自maa03s16-in-f5.1e100.net的ttl = 52 time = 11.4 ms64字节 (74.125.236.165):icmp_req = 3 ttl = 52 time = 19.6 ms --- google.com ping 统计--- 3个包传输,3个接收,0%丢包,时间 2002msrtt min / avg / max / mdev = 11.494 / 17.252 / 20.579 / 4.089 m
它的格式正确。如何添加换行符? 好。我真正想要的是这样的。
只有最后一行。
rtt min/avg/max/mdev = 20.774/20.962/21.085/0.135 ms
我希望在jsp页面中显示min,avg,max值的值。请指导我。
答案 0 :(得分:1)
尝试
pingResult += inputLine + "\n";
请注意,在这种情况下使用StringBuilder是典型的,无论性能影响如何
答案 1 :(得分:0)
更新: 我更新了代码。现在我只获得最后一行作为输出。
private static String pingTest(String ip) {
// TODO Auto-generated method stub
String pingResult = "";
// System.out.println("Came in pingTest");
String pingCmd = "ping -c 3 " + ip;
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(pingCmd);
BufferedReader in = new BufferedReader(new
InputStreamReader(p.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
//System.out.println(inputLine);
if (inputLine.contains("rtt"))
pingResult += inputLine+ "\n";
}
in.close();
} catch (IOException e) {
System.out.println(e);
}
return pingResult;
}
由于