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ループを使用して、提案し何をしたい:私は
'String nextLine = parserscanner.nextLine();'という行を1つだけ読み込みます。すべての行を読み込むためにループする必要があります。 – AxelH
これを使用して、すべての行を取得します。while(parserscanner.hasNextLine()){nextLine = parserscanner.nextLine(); } '、特定のパターンを解析するには、スキャナのfindInLineメソッドを使用するか、string.splitを1行ずつ使用します –