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
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);
    }
}
J'ai essayé buf = null;, buf.rewind();, buf.remaining(); mais aucun ne fait effet
Si je supprime la ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
le fichier se supprime

Une Idée ???