gpt4 book ai didi

java - 我们可以同时读取和写入文件吗?

转载 作者:行者123 更新时间:2023-12-01 05:48:28 25 4
gpt4 key购买 nike

假设我有两个线程( threadA threadB ),其中 threadA 正在从文件中读取,而 threadB 正在写入同一个文件,这里有两种方法:

// Thread A reads
java.nio.file.Files.readAllBytes(Path.get("test.txt"));

// Thread B writes
java.nio.file.Files.write(Paths.get("test.txt"), bytes);

如果两个线程同时运行会发生什么?

如果线程A开始读取,那么线程B写入文件(线程A尚未完成读取),线程A会读取原始文件(线程B修改之前)或修改后的文件还是会抛出异常?

最佳答案

这不是您的问题“会发生什么”的答案,而是......

将批处理的结果写入 result.file 并“处理”它应该由单独的处理程序处理。
看看目录监视服务Watching a Directory for Changes
新的result.file.yyy-mm-dd(e.g.)写入后,或者文件被修改后,需要解析,准备好webcontent。否则,每次有人访问该页面时都会对其进行解析 - 我认为这不是那么优雅。
借助像 synchronized 这样的锁定机制可以避免“可能”的时刻。

关于java - 我们可以同时读取和写入文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59521527/

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