私は、Unixコマンド "tail -f"をBufferedInputStreamにラップする必要があります。私はthis questionで述べたように、模擬したり模倣したりしたくありません。むしろ、私は新しい行を与えるのを待って、尾を使用したい。Java "tail -f" wrapper
3
A
答えて
14
あなたの最善の策はProcess
クラスを使用して読むことですScanner
:
Runtime r = Runtime.getRuntime()
Process p = r.exec("tail -f")
Scanner s = new Scanner(p.getInputStream())
while (s.hasNextLine()) {
String line = s.nextLine()
// Do whatever you want with the output.
}
hasNextLine()
あなたがデータとして多忙待ちをされませんので、それは入力ストリームからの複数の入力を待っていてブロックする必要があります入って来またProcessBuilder
1
0
私は、tailコマンドが終了するまでプログラムがブロックされるため、system()とpopen()型のアプローチは動作しないと推測しています。
出力をファイルにリダイレクトし、最後のバージョンに対して 'diff'を使用して、新しい行を確認することはできますか?
0
あなたは
tail -f <file> | <some java program>
は、その後、尾はしばらくの間ブロックすることがありInputStream
として現れるUNIXコマンドを使用している場合。あなた自身をブロックしたくない場合は、nioパッケージを使用します。 tailコマンドにアクセスする他のほとんどの方法(Process
など)の結果は、同様のInputStream
になると私は信じています。
1
チェック:。
Process tail = new ProcessBuilder("tail", "-f", file).start();
BufferedInputStream bis = new BufferedInputStream(tail.getInputStream())
は、は "/ var/log/messages"のような文字列です。
0
関連する問題
- 1. tail -fログファイルのタイムスタンプ
- 2. tail -f(follow)とxargs
- 3. tail -f node.jsの実装
- 4. 崇高なテキスト2 tail -f in windows
- 5. Cの "tail -f"機能のカスタム実装
- 6. Perlでtail -fをシミュレートする
- 7. tail -Fとjsonの組み合わせ
- 8. tail -f fashonのリアルタイムwatch/devファイル
- 9. javaプログラムからtail -fコマンドを停止する方法はありますか?
- 10. JavaのリモートUnixシステムから "tail -f"ファイルを作成する方法は?
- 11. Perl/PythonコードへのJava Wrapper
- 12. ラズベリーPIのJava Service Wrapper
- 13. 100%CPUを使用しないtail -f pythonスクリプトを書く
- 14. tail -f出力をcurl(HTTPストリーム)にリダイレクトするには
- 15. rubyでバックティックがtail -fコマンドで機能しない
- 16. `sudo tail -f /var/log/auth.log`はどういう意味ですか?
- 17. UNIXシェル、tail -fから最後の出現パターン
- 18. tail -fコマンドをサブシェルで実行する方法
- 19. emacs、la tail -f以下のバッファをフォローする
- 20. tail -f grep into cutが正しく動作しない
- 21. リアルタイムで `tail -f`出力を修正します
- 22. 'grep -q'が 'tail -f'で終了しない
- 23. tailの-fフラグは何をしますか?
- 24. Windowsにtail -fと同等の機能はありますか?
- 25. 「hadoop fs -tail -f」のプログラムに相当します。
- 26. awsログをリアルタイムで表示する方法(tail -fなど)
- 27. tail -f log/test.logを読みやすくするには
- 28. Linux tail + grep + less
- 29. Java Wrapper Script with sudo does not work
- 30. Geektool and tail follow
ありがとう!それはとてもうまくいく。 – geowa4
唯一の問題は、最後に改行文字が必要であることです – geowa4