View Full Version : [JAVA] Accesso sincronizzato al file
Abdujaparov
07-10-2007, 23:31
Salve a tutti sto scrivendo un'applicazione a sua volta suddivisa in due sotto applicazioni che hanno necessità di leggere e/o scrivere su uno stesso file (in particolare è un file xml). Come posso sincronizzare l'access a questo file in modo che se una delle due applicazioni lo scrive l'altra deve attendere che la scrittura termini?
Grazie a tutti, ciao ciao.
Come posso sincronizzare l'access a questo file in modo che se una delle due applicazioni lo scrive l'altra deve attendere che la scrittura termini?java.nio.channels.FileLock, ti suggerisco di leggere bene la documentazione di FileLock.
Inoltre può essere utile:
http://java.sun.com/developer/JDCTechTips/2002/tt0924.html#1
Abdujaparov
08-10-2007, 17:25
Ciao, sto dando un'occhiata all'uso della classe java.nio.channels.FileLock.
L'uso mi sembra molto semplice, devo semplicemente passare un oggetto file al costruttore e poi fare il lock.
Ora ho però 2 dubbi che ancora non sono riuscito a chiarirmi, quando cerco di accedere un file su cui è stato effettuato un lock non ancora rilasciato, il programma rimane in attesa del rilascio del file o mi viene generata un'eccezione?
Un'altra domanda, io devo scrivere e leggere un file xml, dopo che faccio il lock sul file io provo ad aprire il file xml, posso utilizzare serenamente l'oggetto File senza più utilizzare l'oggetto FileLock se non per il rilascio del lock?
Ultima domanda, dato che io vorrei il lock solo in scrittura, quando un programma vuole leggere un file lockato accade qualcosa di particolare?
Grazie e scusa la montagna di domande.
Ciao ciao.
quando cerco di accedere un file su cui è stato effettuato un lock non ancora rilasciato, il programma rimane in attesa del rilascio del file o mi viene generata un'eccezione?Dipende se usi lock() o tryLock() di FileChannel, vedi documentazione.
Un'altra domanda, io devo scrivere e leggere un file xml, dopo che faccio il lock sul file io provo ad aprire il file xml, posso utilizzare serenamente l'oggetto File senza più utilizzare l'oggetto FileLock se non per il rilascio del lock?Direi di si, ma non prendere questa mia risposta per oro colato in quanto il package java.nio.channels lo conosco pochissimo.
Ultima domanda, dato che io vorrei il lock solo in scrittura, quando un programma vuole leggere un file lockato accade qualcosa di particolare?Su questo preferisco non pronunciarmi ... dovrei leggere bene e meglio la documentazione.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.