IntelliJ 7.0.1 Red Hat Developer Studio
Nov 08

Java’da dosya üzerinde bir işlem yaparken dosyayı kilitlemek istiyorsanız aşağıdaki kodu kullanabilirsiniz.
Kodu çalıştırdığınız zaman java.io.IOException atacaktır. Java kilitli dosyayı okumaya izin vermeyecektir.

import java.io.*;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;

public class FileLockSample {

    public static void main(String[] args) throws Exception {
        RandomAccessFile file = null;
        FileLock fileLock = null;
        try {
            // dosyayı RW icin acıyoruz
            file = new RandomAccessFile("C:/a.txt", "rw");
            FileChannel fileChannel = file.getChannel();

            // Dosya kilitleniyor
            fileLock = fileChannel.tryLock();
            if (fileLock != null){
                System.out.println("Dosya kitli");
                // Dosya okunmaya çalışılıyor
                // fakat kilitli olduğu için
                // Exception atıyor
                FileInputStream input=null;
                input = new FileInputStream("C:/a.txt");
                int data = input.read();
                System.out.println(data);
            }
        } catch (Exception exception){
            exception.printStackTrace();
        } finally {
            if (fileLock != null){
                // Dosya kiliti kaldırılıyor
                fileLock.release();
            }
        }
    }
}

yazan ekocaman \\ tags: ,

Cevapla