2017-03-10 7 views
-3

LogParser.javaJavaの解析は、指定された単語に応じ

package com.mpj.Parallelization; 

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class LogParser { 

    public static void main(String[] args) throws Exception { 

     File logfile = new File("/C:/ParallelKMeansProject/logs/log.txt"); 

     try { 
      Scanner parserscanner = new Scanner(logfile); 

      String nextLine = parserscanner.nextLine(); 

      String[] logcomponent = nextLine.split(" "); 

      String latitude = logcomponent[0]; 
      String longtitude = logcomponent[1]; 

      System.out.println(latitude); 
      System.out.println(longtitude); 

      System.out.println("Next Line: " + nextLine); 

     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 

} 

log.txtという内容

2017年3月10日12時30分30秒DEBUGのSerialKMeans:29 -

======

反復回数:21 W二乗誤差のithinクラスタ合計: 13.902870732812898

初期開始点(ランダム):

クラスタ0:41.051205,28.808497クラスタ1:41.055391,28.785407クラスタ 2:41.054838,28.802617クラスタ3:41.022421,28.788169クラスタ4: 41.024494,28.784099クラスタ5:41.018659,28.787669クラスター6:グローバル平均/モードに置き換え41.040879,28.753359

欠損値...

これは、私はlog.txtとログを並べて並べて書き込むことが好きです。

私の最初の質問は、私は、このコマンドラインですべてのログを見ていないSystem.out.println("Next Line: " + nextLine);

です。ログの書き込みはここで終了します(2017-03-10 12:30:30 DEBUG SerialKMeans:29 - )more.Logosはすべてtxtファイルに並べて書き込まれます。結論ではありません。しかし、それはちょうど2017-03-10 12:30:30と書いています。DEBUG SerialKMeans:29 -

私の2番目の質問;私たちが最初の問題を解決すれば、私は特定の単語を解析したい。

FileInputStream stream = new FileInputStream(logfile); 
    BufferedReader br = new BufferedReader(new InputStreamReader(stream)); 

    String line; 

    while ((line = br.readLine()) != null) { 
     System.out.println (line); 
    } 

それとも、あなたの現在のコードを維持したい場合は、私は@オメルErdenがにwhileループを使用して、提案し何をしたい:私は

+0

'String nextLine = parserscanner.nextLine();'という行を1つだけ読み込みます。すべての行を読み込むためにループする必要があります。 – AxelH

+1

これを使用して、すべての行を取得します。while(parserscanner.hasNextLine()){nextLine = parserscanner.nextLine(); } '、特定のパターンを解析するには、スキャナのfindInLineメソッドを使用するか、string.splitを1行ずつ使用します –

答えて

0

私はこのような何かをやってお勧めしたいことをどのように行うことができますすべての行を繰り返します。

関連する問題