1

私のアプリはファイルを「暗号化」します (アマチュア)...次のコードを実行すると、処理するファイルを開くことができません (アプリを閉じるまで) ファイルを適切に解放するにはどうすればよいですか?

SecureRandom random = new SecureRandom();
// file CAN be used
RandomAccessFile raf = new RandomAccessFile(file, "rw");
// since RandomAccessFile, file can't be used.. it's ok
FileChannel channel = raf.getChannel();
MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_WRITE, 0, raf.length());
random.setSeed(key);
byte[] bytes = new byte[(int) raf.length()];
raf.read(bytes);
byte[] randomBytes = new byte[(int) raf.length()];
random.nextBytes(randomBytes);
for (int i = 0; i < bytes.length; i++)
    buffer.put((byte) (bytes[i] + randomBytes[i]));
buffer.force();
channel.close();
raf.close();
// fails to free the file...
4

0 に答える 0