Quiero leer de un archivo y luego eliminarlo, al mismo tiempo evitando que otros procesos accedan a él. ¿Cómo se puede lograr esto?Bloquear un archivo y eliminarlo sin soltar primero el candado
FileLock no funcionará porque debe liberar el bloqueo y cerrar el canal antes de poder llamar a File.delete(). Mi preocupación es que después de liberar el bloqueo, otro proceso pueda bloquearlo y comenzar a leer antes de que se elimine el archivo.
Estoy usando Java 5 y actualizar a 6 no es una opción en este momento.
El problema que describes solo ocurre en Windows. ¿Esa es la plataforma? – EJP
Pude reproducir este problema en Mac OS X también. – Tom
@EJP - Puede que lo estés leyendo demasiado literalmente. El problema no es que "TIENE que liberar el bloqueo ANTES de que pueda llamar a File.delete()". Puede llamar a File.delete() antes de liberar el bloqueo, sin embargo, la eliminación no funcionará. El código se ejecutará pero el método devolverá falso y silenciosamente fallará. – Scrubbie