如何用java实现独占打开文件

如何用java实现独占打开文件,第1张

import Java.io.*

import java.nio.channels.*

/**

* 锁住文件(不让其它线程或进程修改)

*

* @author kingfish

*/

public class LockFile {

public LockFile() {

}

public static void main(String[] args) throws Exception {

RandomAccessFile raf = new RandomAccessFile(new File("c://test.txt"), "rw")

FileChannel fc = raf.getChannel()

FileLock fl = fc.tryLock()

if (fl.isValid()) {

System.out.println("get the lock!")

//测试线程

new Thread() {

public void run() {

while (true) {

try {

Thread.sleep(100)

FileReader fr = new FileReader(new File("c://test.txt"))

int c

while ( (c = fr.read()) != -1) {

System.out.println( (char) c)

}

fr.close()

break

}

catch (Exception e) {

System.out.println(e)

}

}

}

}.start()

//模拟其它 *** 作的耗时:比如用notepad打开无法修改。但是用程序来读写此文件都会异常

raf.write("kingfish(八百里秦川@龙城异客)".getBytes())

Thread.sleep(5000)

fl.release()

System.out.println("release the lock!")

}

raf.close()

}

}

可以通过BufferedReader流的形式进行流读取,之后通过readLine方法获取到读取的内容。BufferedReaderbre=nulltry{Stringfile="D:/test/test.txt"bre=newBufferedReader(newFileReader(file))//此时获取到的bre就是整个文件的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11716826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存