Bonjour,
Si tu es en Java 7 ou +, il est recommandé d'utiliser les try-ressources.
Ceci permet de simplifier le code, car c'est Java qui s'occupe de fermer les ressources.
Mieux, tu n'a plus besoin des lignes de codes dans le "finally", lignes de codes casse-gueule.
try(Session s = HibernateUtil.getSession()){
Et:
try(fis = new FileInputStream(file)){
Après, on a:
1 2 3 4 5 6 7 8 9
|
fis = new FileInputStream(file);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date jour = new Date(file.lastModified());
System.out.println(jour);
extract.setDateImport(jour);
s.update(extract); |
Le FileInputStream est ce que l'on appelle un flux.
Quand tu ouvres un FileInputStream, tu poses automatiquement un verrou.
Je pense que l'erreur est à la ligne:
Date jour = new Date(file.lastModified());
Effectivement, à ce stade là, le fichier est verrouillé.
Il reste verrouillé jusqu'à ce que le flux soit fermé.
C'est pour ça qu'il est important de bien fermer les flux, et que c'est mieux d'utiliser le try-ressources plutôt que le try/catch/finally (depuis Java 7).
Partager