java 文件锁问题

rkily 发布于 2014/06/07 10:53
阅读 890
收藏 0
因为集群的需要,需要实现对一个共享文件进行“读写”(同时的)加锁,用RandomAccessFile可以实现读写同时锁定,但是在写的时候,只能追加,不能覆盖,我想问下有没有什么办法可以让他变成是覆盖的,或者有没有什么其他的方法,(读写分开的lock不行)
加载中
0
安西都护府首席程序员
安西都护府首席程序员

使用NIO不就可以了吗。

ByteBuffer buffer=ByteBuffer.allocate(10);
		
		
		buffer.put("abc".getBytes());
		FileChannel channel=new RandomAccessFile("t.bin", "rw").getChannel();//读写模式打开
		
		FileLock fileLock=channel.lock();//获的文件锁定
		
		buffer.position(0);
		
		channel.write(buffer);
		
		//在文件锁release之前都是锁定的。
		//Thread.sleep(100); 
		
		fileLock.release();//释放文件锁定
		
		channel.close();



rkily
rkily
RandomAccessFile raf = new RandomAccessFile(file,"rws")写的时候先raf.seek(0),就可以实现覆盖,不是追加,你说的方法我没试过,不知道行不行,不过谢谢了,回头我试试看
返回顶部
顶部