gpt4 book ai didi

java - 使用 FileLock 将行追加到文件

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

这是我见过的向文件追加行的最清晰的方法。 (如果文件尚不存在则创建该文件)

String message = "bla";
Files.write(
Paths.get(".queue"),
message.getBytes(),
StandardOpenOption.CREATE,
StandardOpenOption.APPEND);

但是,我需要在其周围添加(操作系统)锁定。我浏览了 FileLock 的示例,但在 Oracle Java 教程中找不到任何规范的示例,而且 API 对我来说非常难以理解。

最佳答案

您可以锁定文件,检索其流 channel 并锁定它。

行中的某些内容:

new FileOutputStream(".queue").getChannel().lock();

您还可以使用 tryLock,具体取决于您想要的平滑程度。

现在要写入并锁定,您的代码将如下所示:

try(final FileOutputStream fos = new FileOutputStream(".queue", true);
final FileChannel chan = fos.getChannel()){
chan.lock();
chan.write(ByteBuffer.wrap(message.getBytes()));
}

请注意,在此示例中,我使用 Files.newOutputStream 添加打开选项。

关于java - 使用 FileLock 将行追加到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648869/

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