java文件锁

来源:互联网 发布:floyd算法视频 编辑:程序博客网 时间:2024/06/11 14:06
import java.io.*;public class Example10_19 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubFile file=new File("Example10_19.java");WindowFileLock win=new WindowFileLock(file);win.setTitle("使用文件锁");}}

import java.io.*;import java.nio.*;import java.nio.channels.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class WindowFileLock extends JFrame implements ActionListener{JTextArea text;JButton button;File file;RandomAccessFile input;FileChannel channel;FileLock lock;WindowFileLock(File f){file=f;try{input=new RandomAccessFile(file,"rw");channel=input.getChannel();lock=channel.tryLock();}catch(Exception exp){}text=new JTextArea();button=new JButton("读取一行");add(new JScrollPane(text),BorderLayout.CENTER);add(button,BorderLayout.SOUTH);setSize(300,400);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e){try{lock.release();String lineString=input.readLine();text.append("\n"+lineString);lock=channel.tryLock();if(lineString==null)input.close();}catch(Exception ee){}}}

建立文件锁的步骤

1.使用RandomAccessFile建立指向文件的流对象,必须为rw。

2.input流使用getChannel()获取FileChannel对像channel。

3.channel调用tryLock()方法获得FileLock对像。

4.FileLock对像调用release可以释放文件锁。

原创粉丝点击