「java独占读」JaVa怎么读

博主:adminadmin 2022-11-24 19:04:05 56

本篇文章给大家谈谈java独占读,以及JaVa怎么读对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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

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();

}

}

java读写同一个文件

读取文件有三种方式,r, w, a,读,覆盖写, 追加写, new FileReader(file)以读的方式打开了文件,两个马上就以new FileWriter(file)方式覆盖写文件,文件自然是空白的,之后你readLine读到的是null,即String line是null,然后你要writer.write(line); 即writer.write(null); 自然报空指针;

建议,如果边读边写,考虑RandomAccessFile类

用java读取文件流,文件进程被java独占,怎样

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

关于使用java的java.nio.channels.FileLock,实现程序对文件的独占读写的问题

用你的方法,当你锁住文件再解锁的时候你会发现,原来文件里的内容不见了,所以后一段读文本的程序只能读到一个null ,你可以参考这个

java独占读的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JaVa怎么读、java独占读的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。