当文件有另一个编写器时,没有一种可靠的跨平台方式来被动地通知用户,即,如果文件已经打开可写,则会引发异常。但是,有两种技术可以帮助您主动进行检查。
如果该文件可能有多个进程(可能是Java和非Java的混合),请使用
FileLock。成功使用文件锁的关键是记住它们只是“建议”。如果您检查该锁,可以确保该锁是可见的,但是如果您忘记了它,它也不会阻止您对文件执行操作。访问文件的所有进程都应设计为使用锁定协议。
如果单个Java进程正在处理该文件,则可以使用Java内置的并发工具来安全地进行处理。您需要一个对所有线程可见的映射,该映射将每个文件名与其对应的锁实例相关联。通过使用对象或文件的规范路径,可以轻松调整相关问题的答案,以实现此
File目的。锁定对象可以是,流周围的包装器或。
FileOutputStream
ReentrantReadWriteLock



