SORU
24 EYLÜL 2008, ÇARŞAMBA


Nasıl bir dosya java (mümkünse)kullanarak kilitleyebilir miyim

Bir dosya bir FileReader kullanarak açar, Java bir süreç var. Nasıl bu dosyayı açmasını (Java) başka bir işlem önlemek, ya da en azından dosya zaten açılan ikinci işlem bildirebilir miyim? Bu işlemi otomatik olarak yapmak ikinci bir durum ise Dosya Aç (hangi sorunumu çözer) ya ben açık açık ilk işlemi ile bir çeşit bayrak ya da tartışma mı?

Netleştirmek için:

Bir klasör listeleri ve işleme listesinde, her dosyayı açan bir Java uygulaması var. Diğer sonra her dosya işler. Her dosyanın işleme okumayı ve bazı hesaplamalar içeriğine bağlı olarak oluşturmaktadır ve yaklaşık 2 dakika sürer. Ben de aynı şeyi yapar ama bunun yerine dosyanın üzerine yazar başka bir Java uygulaması var. İstediğim senaryo bu böyle gider yani aynı zamanda bu uygulamaları çalıştırmak mümkün. ReadApp klasör ve dosyaları listeler A, B, C açılır Bir dosya bulur ve okumaya başlar. WriteApp listeler klasör ve dosyaları bulur A, B, C açılır Bir dosya, görmesidir açık (bir durum veya her ne şekilde olursa olsun) ve gider dosyası B. ReadApp bitirir dosya ve devam ediyor. gördüğü açık ve devam ediyor. Bu çok önemli bu WriteApp yok yazarken ReadApp okuma aynı dosya ya da tam tersi. Farklı işlemler vardır.

CEVAP
24 EYLÜL 2008, ÇARŞAMBA


FileChannel.kilit istiyorsun herhalde.

FileInputStream in = new FileInputStream(file);
try {
    java.nio.channels.FileLock lock = in.getChannel().lock();
    try {
        Reader reader = new InputStreamReader(in, charset);
        ...
    } finally {
        lock.release();
    }
} finally {
    in.close();
}

(Yasal Uyarı: Kod derlenmiş ve kesinlikle test değil.)

Bölüm "" API doc for FileLock. platform bağımlılıkları başlıklı not

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • David Wills

    David Wills

    31 Aralık 2007
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007