Мне нужно нарисовать динамический график, то есть контролировать сервер Linux-машины. Ниже приведен результат работы сервера Linux, используя его, я нарисую график.

02:54:09 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 02:54:11 PM 143612 3678012 96.24 217016 2067000 3024356 37.73 02:54:13 PM 143612 3678012 96.24 217016 2067000 3024356 37.73 02:54:15 PM 143612 3678012 96.24 217016 2067000 3024356 37.73 02:54:17 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:19 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:21 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:23 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:25 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:27 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:29 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:31 PM 143488 3678136 96.25 217016 2067000 3024356 37.73 02:54:33 PM 143488 3678136 96.25 217016 2067000 3024356 37.73

Моя проблема: Мне нужно получить значения столбца «% memused» (столбец значений 96,24, который мне нужно получить).

Я попытался разделить их, используя позиции строки, но не смог получить правильные значения, так как длина значения часто меняется, что привело меня к фатальной ОШИБКЕ . Может ли кто-нибудь предложить какую-нибудь логику для этого ..

0
Alex Michael Raj 31 Июл 2014 в 14:30

2 ответа

Лучший ответ

Вы можете сделать это

try {
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader
          (new FileInputStream("pathofthtextfile")));
       while(true) {
          String line = bufferedReader.readLine();
          if (line == null) {
                break;
          }
          else{
             String[] data = line.split("\\s+");
             System.out.println(data[4]);
          }
}

} catch (FileNotFoundException e) {
            e.printStackTrace();
} catch (IOException e) {
            e.printStackTrace();
}
1
SparkOn 31 Июл 2014 в 15:32

У меня возникнет соблазн заменить пробел в строке одним разделителем, запятой или вертикальной чертой. Тогда вы сможете успешно использовать String.split (String regex) для успешного анализа строки.

0
enkor 31 Июл 2014 в 14:38