gpt4 book ai didi

java - 读取外部日志文件而不创建文件锁

转载 作者:行者123 更新时间:2023-11-30 07:21:18 25 4
gpt4 key购买 nike

尝试逐行读取日志文件(在 Java 中)。此日志文件正在被另一个进程(非 Java 程序)同时写入。

我有两种方法 -

  1. BufferedReader (BufferedReader br = new BufferedReader(new FileReader(logFile));)
  2. RandomAccessFile (RandomAccessFile accessFile = new RandomAccessFile(logFile.getAbsolutePath(), "r");)

这两种方法是否都会导致文件被锁定,直到我调用 BufferedReader/RandomAccessFile 对象上的“close”方法?

是否有任何其他方式(Java)以文件不被其他进程/程序锁定/阻止的方式读取文件?

PS - 在我所有的搜索中,我遇到了这个问题的多个答案/解决方案(旧的和新的)。我只是想就此问题寻求澄清/关闭。

最佳答案

看看这个:Java: opening and reading from a file without locking it

如果非 Java 进程在写入文件时对文件有独占锁,则可能没有其他进程能够读取它。当然,这可能因操作系统而略有不同。您可能想查看非 Java 进程运行时操作系统对文件锁定的看法。

如果共享锁可用,则 java.nio 可能允许对锁定行为进行更多控制:http://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html

关于java - 读取外部日志文件而不创建文件锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13445415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com