使用java获取ping结果

使用java获取ping结果,java,jsp,Java,Jsp,我正在尝试获取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;

我正在尝试获取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)字节的数据。从 maa03s16-in-f5.1e100.net(74.125.236.165):icmp_请求=1 ttl=52时间=20.5 来自maa03s16-in-f5.1e100.net(74.125.236.165)的ms64字节:icmp_req=2 ttl=52时间=11.4 ms64字节,来自maa03s16-in-f5.1e100.net (74.125.236.165):icmp_请求=3 ttl=52时间=19.6毫秒--google.com ping 统计数据---传输3个数据包,接收3个,0%数据包丢失,时间 2002msrtt最小值/平均值/最大值/mdev=11.494/17.252/20.579/4.089米

它的格式正确。如何添加换行符? 好。我真正想要的是这样的东西

只有最后一行

rtt min/avg/max/mdev = 20.774/20.962/21.085/0.135 ms
我想在我的jsp页面中显示最小值、平均值、最大值。请引导我。

试试看

pingResult += inputLine + "\n";
请注意,在这种情况下,通常使用StringBuilder,无论性能影响如何更新: 我更新了代码。现在我只得到最后一行作为输出

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;

}

谢谢

我添加了pingResult+=inputLine+“\n”;没有帮助(如果您找到了问题的解决方案,请将其作为答案发布并接受,以便其他用户知道此问题已解决。