gpt4 book ai didi

java - 处理文件的锁定部分 (Java)

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

多年来我一直在为这个问题烦恼!

尝试对文本文件(“test.txt”)加锁,然后从文本文件中读取一行并释放锁。

我收到以下错误:

“错误:java.io.IOException:该进程无法访问该文件,因为另一个进程已锁定该文件的一部分”

请参阅下面的代码:

public static void main(String[] args) 抛出异常{

    File file = new File("test.txt");
FileInputStream in = new FileInputStream(file);
DataInputStream dis = new DataInputStream(in);


FileChannel channel = new RandomAccessFile("test.txt", "rw").getChannel();

try{
FileLock lock = channel.tryLock();

System.out.println("Data: " + dis.readLine());

lock.release();
}catch(Exception ex){
System.out.println("Err: "+ex);
}
in.close();
}

似乎有一个进程在执行读取操作之前锁定了文件?

抱歉我的无知,我从事 Java 工作的时间不长,我尝试过在其他地方寻找解决方案。

提前致谢!

最佳答案

试试这个:

RandomAccessFile raf = new RandomAccessFile("test.txt", "rw");
FileChannel channel = raf.getChannel();

// .. do locking here ...

// wrap DataInputStream around existing, locked connection
DataInputStream dis = new DataInputStream(new FileInputStream(raf.getFD()));
System.out.println("Data: " + dis.readLine());

// .. do unlocking here ...

关于java - 处理文件的锁定部分 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5016325/

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