为了账号安全,请及时绑定邮箱和手机立即绑定

Unix/Linux“tail-f”的Java IO实现

Unix/Linux“tail-f”的Java IO实现

繁花不似锦 2019-07-10 15:45:46
Unix/Linux“tail-f”的Java IO实现我想知道用什么技术和/或库来实现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}缺失的部分是一个合理的实现TailFileReader..它应该能够读取文件打开前存在的部分文件以及添加的行。
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

能够继续读取文件,并等待文件有更多的更新为您自己应该是不难做到的。下面是一些伪代码:

BufferedReader br = new BufferedReader(...);String line;while (keepReading) {
    line = reader.readLine();
    if (line == null) {
        //wait until there is more of the file for us to read
        Thread.sleep(1000);
    }
    else {
        //do something interesting with the line
    }}

我假设您希望将这种类型的功能放在自己的线程中,这样您就可以休眠它,而不会影响应用程序的任何其他领域。你会想暴露keepReading在setter中,这样应用程序的主类/其他部分就可以安全地关闭线程,而不会引起任何其他麻烦,只需调用stopReading()或者类似的东西。


查看完整回答
反对 回复 2019-07-10
?
MYYA

TA贡献1868条经验 获得超4个赞

的ApacheCommonsImplementation尾矿班级,等级。它似乎也处理日志旋转。


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 551 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信