题目描述
题目:在操作文件时,有时会遇到一个问题:该文件已经被另一个程序占用,打开失败。这是因为另一个程序在编辑此文件。
实现:对F盘的jasonakeke.txt文件进行锁定1分钟,1分钟后解锁。
解题思路
创建一个类:EncryptInput
使用FileChannel类的tryLock()获取文件锁定,如果没获取到文件锁,会返回null。可以通过这个返回值判断是否有没有被锁定。
FileLock 一般都是从FileChannel 中获取
FileLock 是文件锁,它能保证同一时间只有一个进程(程序)能够修改它,或者都只可以读,这样就解决了多进程间的同步文件,保证了安全性。但是需要注意的是,它进程级别的,不是线程级别的,他可以解决多个进程并发访问同一个文件的问题,但是它不适用于控制同一个进程中多个线程对一个文件的访问。这也是为什么它叫做 多进程文件锁,而不是 多线程文件锁。
代码详解
package question
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/141828.html