Otwieram plik PDF, który utworzyłemiText. Bez otwierania go w module renderującym PDF i po prostu otwierając go normalnie i zamykając, mogę usunąć i zastąpić plik. Jednak gdy użyję modułu renderującego PDF, aby go otworzyć, to go zamknę. Nie mogę usunąć pliku PDF ani go zastąpić.
ByteBuffer buf;
...
randomAccessFile = new RandomAccessFile(new File(file), "r");
fileChannel = randomAccessFile.getChannel();
buf = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, fileChannel.size());
pdfFile = new PDFFile(buf);
Kod tutaj pobiera obraz i umieszcza go w panelu.
Następnie zamykam powyższe elementy.
Wciąż jest gdzieś otwarty, ale nie mogę się domyślić, gdzie docenia się wszelką pomoc.
Odpowiedzi:
1 dla odpowiedzi № 1Błąd wydaje się być w nie pokazanej reszcie (lub zamykaniu pliku fileChannel).
PDFFile pdfFile = new PDFFile(new File(file));
PdfReader pdfReader = pdfFile.getPdfReader();
try {
...
} finally {
pdfReader.close();
}
0 dla odpowiedzi nr 2
Czy zamykasz plik? Jeśli nadal masz otwarty plik, Java nie może go usunąć.