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: ,