いくつかのログファイルをテール/解析しようとしています。エントリは日付で始まり、その後、多くの行にまたがることができます。
これは機能しますが、ファイルへの新しいエントリは表示されません。
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]");
}
}
Scannerのnext()またはhasNext()がファイルへの新しいエントリを検出していないようです。
基本的に、カスタム区切り文字を使用したtail-fを他にどのように実装できるかについてのアイデア。
わかりました-ケリーのアドバイスを使用して、スキャナーをチェックして更新しています。これは機能します。ありがとうございました !!
誰かが改善の提案を持っているなら、plzはそうします!
File inputFile = new File("C:/test.txt");
InputStream is = new FileInputStream(inputFile);
InputStream bis = new BufferedInputStream(is);
//bis.skip(inputFile.length());
Scanner src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
while (true) {
while(src.hasNext()){
System.out.println("[ " + src.next() + " ]");
}
Thread.sleep(50);
if(bis.available() > 0){
src = new Scanner(bis);
src.useDelimiter("\n2010-05-01 ");
}
}