java - java.io.File length() 可以锁定文件并阻止 File.delete() 工作吗?

标签 java filesystems file-locking

我有一个多线程 java 应用程序,日志记录代码在 1 个线程中使用 File.length,但仅用于日志记录。

我希望能够从其他线程中删除,而不管此日志记录如何。

java.io.File.length() 调用可以锁定文件并阻止 java.io.File.delete() 调用工作吗?

我正在使用 Windows Sun/Oracle JRE(目前为 1.6.0_30)

最佳答案

这是文件系统的属性,而不是 JVM,因此不可能用简单的"is"或“否”来回答这个问题。打开文件进行读取或写入时 delete() 无法正常工作的已知问题是 Windows 特有的问题,在类 UNIX 系统上不会发生。

但就您的具体情况而言,这在 Windows、Linux 或 Mac OS X 上不会成为问题,也许这个答案已经足够好了!

关于java - java.io.File length() 可以锁定文件并阻止 File.delete() 工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210168/

相关文章:

c - 如何绕过 Linux VFS inode 缓存?不将 inode 添加到其 super_block 列表是否安全?

c# - 删除已被 WPF 控件使用的图像

multithreading - 如何有效地表示或建模锁定序列?

python - 在 python 中使用 lockfile 后写入文件时出现 PermissionError [Errno 13]

java - Java 8 中添加 Stream.Builder.accept(T t) 方法有什么意义?

java - 要求 IntelliJ IDEA 将构建的 Artifact 安装到 Maven 本地存储库中

filesystems - 非循环图目录和通用图目录

java - 在 Oracle10g 上使用 c3p0 配置 Hibernate 连接池

java - 从分布不均匀的集合中选择随机元素?

Linux 文件系统基准测试最佳实践