Bonjour,
comme dit dans le titre je cherche à supprimer un fichier précédemment
chargé dans un byteBuffer.
J'utilise l'API PDF Renderer qui nécessite de charger le fichier dans un byteBuffer mais impossible de libérer la ressource ensuite
Voila un exemple de code
J'ai essayé buf = null;, buf.rewind();, buf.remaining(); mais aucun ne fait effet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import java.io.File; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class Main { public static void main(String[] args) { RandomAccessFile raf = null ; FileChannel channel = null; ByteBuffer buf = null; try { raf = new RandomAccessFile(new File("c:/azerty.pdf"), "r"); channel = raf.getChannel(); buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); raf.close(); channel.close(); System.out.println(buf.hasRemaining()); } catch (Exception e) { } boolean a = new File("c:/azerty.pdf").delete(); System.out.println(a); } }
Si je supprime la ligne :
le fichier se supprime
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
Une Idée ???
Partager