Pb pour liberer les ressources
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:
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:
1 2
|
buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); |
le fichier se supprime
Une Idée ???