相关疑难解决方法(0)

unix/linux的Java IO实现"tail -f"

我想知道用什么技术和/或库来实现linux命令"tail -f"的功能.我基本上是在寻找一个附加/替换的下降java.io.FileReader.客户端代码可能如下所示:

TailFileReader lft = new TailFileReader("application.log");
BufferedReader br = new BufferedReader(lft);
String line;
try {
  while (true) {
    line= br.readLine();
    // do something interesting with line
  }
} catch (IOException e) {
  // barf
}
Run Code Online (Sandbox Code Playgroud)

缺失的部分是合理的实施TailFileReader.它应该能够读取文件打开前存在的文件部分以及添加的行.

java file-io iostream file tail

69
推荐指数
5
解决办法
7万
查看次数

是否可以将“tail -f”命令的输出输出到java程序?

根据:

unix/linux“tail -f”的Java IO实现

Java“tail -f”包装器

我认为这是可能的,但我有以下问题。

String TailCommand = "tail -f /path/PATH.txt| grep (...)";
Runtime r = Runtime.getRuntime();
Process p = r.exec(TailCommand);

//handle buffer

while (running) {
    // handle output
}
Run Code Online (Sandbox Code Playgroud)

进程 p 终止。它适用于不像“top”或“tail -f”那样没有持续更新的命令。

我想知道我是否错过了什么,有一些缓冲区限制还是什么?我正在使用 Eclipse,但我想这应该不会对进程行为产生任何影响。

事实上,也许还有另一种简单的方法可以解决我错过的问题。我使用“tail -f”,因为我必须分析不断附加的非常胖(一些 GB)的日志,并且不打算打开它并读取整个文件。我只需要控制附加行。但是我没有找到合适的尾部实现

提前致谢。

java shell logging iostream process

5
推荐指数
1
解决办法
2139
查看次数

标签 统计

iostream ×2

java ×2

file ×1

file-io ×1

logging ×1

process ×1

shell ×1

tail ×1