import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.channels.FileLock;
public class FileReaderLock {
public static void main(String[] args) throws Exception {
FileInputStream fos = new FileInputStream("file.txt");
//获取文件锁 FileLock 对象
FileLock fl = fos.getChannel().tryLock();
//下面两个都会报错
FileOutputStream fos1 = new FileOutputStream("file.txt");
// fos1.write(1);
FileInputStream fis = new FileInputStream("file.txt");
// fis.read();
//tryLock是尝试获取锁,有可能为空,所以要判断
if (fl != null) {
System.out.println("Locked File");
Thread.sleep(100);
fl.release();//释放锁
System.out.println("Released Lock");
}
fos.close();
}
}
FileLock不能对只读Channel上锁。
将 FileInputStream fis = new FileInputStream(file);改为RandomAccessFile raf = new RandomAccessFile(file, "rw");
从RandomAccessFile获得通道就可以了。
但是RandomAccessFile速度比BufferedReader要慢非常多,测试的时候是100倍的速度差距
分享到:
相关推荐
在使用`filelock`时,需要注意的是,正确地管理和释放锁至关重要,以避免死锁和其他并发问题。通常,推荐在`with`语句中使用`FileLock`,因为它能自动处理锁的释放,即使在发生异常时也能确保释放。 例如,以下代码...
下面我们将详细讲解`FileLock`的使用方法和注意事项: 1. **获取FileChannel**:首先,你需要创建一个`FileChannel`对象,这通常通过`FileInputStream`或`FileOutputStream`的`getChannel()`方法实现。例如: ```...
在这个场景中,"08-filelock.rar"是一个压缩包,包含了与Linux和UNIX系统编程相关的源码副本,很可能是关于文件锁实现的示例代码或库。 在Linux和UNIX系统中,文件锁主要分为两种类型:记录锁(Record Locks)和...
强大的文件删除工具,当你删除文件时,可能遇到文件无法删除,这时候,filelock就可以轻松帮助你解决文件。
6. **超时和重试机制**:在尝试获取锁时,`filelock`库提供了超时和重试选项。如果锁被其他进程持有,程序可以选择等待一段时间后重新尝试,或者立即返回失败。 7. **进程间通信(IPC)**:在多进程应用中,`...
总结起来,`FileLock`是Java中用于进程间互斥访问文件的重要工具,通过它可以有效地管理和保护共享资源,确保并发环境下的数据一致性。在实际应用中,需要根据具体需求选择合适的锁获取方式,并确保在完成操作后正确...
我昨天刚开始用的加密软件,可以一次加密多个文件。如果想加密文件夹的话可以先将其打包。用过后感觉不错的。软件不需安装,但需要点击“绿化”。安装时请查看解压目录上的说明。加密器的初始密码是123456,绿化后请...
CnCrypt FileLock添加文件或目录后,创建自定义保护规则。能够提供隐藏、锁定、隐藏并锁定三种保护模式,可添加例外进程。保护你的文件、文件夹不被别人轻易打开、阅读、修改、删除、移动、复制,甚至你可以设置让...
资源来自pypi官网。 资源全名:types_filelock-0.1.3-py2.py3-none-any.whl
离线安装包,亲测可用
9. **最佳实践**:在实际应用中,考虑使用`try-with-resources`语句来自动关闭`FileChannel`和`FileLock`,以防止资源泄漏。 10. **并发策略**:在多线程环境中,正确管理和同步对文件锁的访问至关重要。设计良好的...
install.packages( " filelock " ) 用法 library( filelock ) 这是R进程1,它获得了排它锁。 如果要锁定文件myfile ,请始终创建一个单独的锁定文件,而不是将锁定直接放在此文件上! R1 > lck <- lock( " /...
filelock-3.15.4-py3-none-any
- `FileLock`类:主要的加密/解密逻辑,可能包含`encrypt()`和`decrypt()`方法。 - `KeyManager`类:负责密钥的生成、存储和检索。 - `UI`模块:用户界面相关的代码,包括文件选择对话框和输入密码的界面。 - `...
# 官方离线 whl 包 # 离线安装 whl 指令,/data/pkg/whls 为本地 whl 文件路径 pip install --no-index --find-links=/data/pkg/whls *.whl
本篇将深入探讨文件锁的概念、工作原理以及如何在C语言中实现,参考提供的`filelock.c`和`filelock.h`文件。 文件锁分为两种类型:共享锁(读锁)和独占锁(写锁)。共享锁允许多个进程同时读取文件,但不允许写入...
文件锁源码,简单的上锁,解锁,其中多处是项目中特有的文件,可以删除自定义,有多个重载方法可以选择。主要形式都是一样的,就是创建文件,删除文件的工具类。
在Python编程中,当多个线程或进程需要访问同一资源时,为了保证数据的一致性和避免竞态条件,通常会使用锁机制。`python-locker`是一个在Python中实现锁功能的库,版本1.0.2提供了稳定且灵活的锁操作。本文将深入...
flufl.lock库由Flufl项目开发,它提供了两个主要的类:`FileLock`和`Semaphore`。`FileLock`是基于文件系统的锁,可以在跨进程的情况下工作,因为多个进程可以共享同一文件系统。它通过创建和删除特定的文件来实现锁...
它可以将您私密的文件、文件夹和磁盘驱动器信息,提供隐藏、禁止读取、防写保护、监控、安全删除及自我保护等等功能,保护您私密的文件、文件夹和磁盘驱动器信息,不会被其他人看见、阅读及修改,并能监控文件修改...