【初心者】Java質問・相談スレッド108【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0243デフォルトの名無しさん
2007/11/12(月) 17:11:111.Fileにバイナリデータを書き込み
2.同じFileをいったんcloseした後、再度開いて書き込んだデータを読み込み
3.同じFileを最後に削除
ということを試しているのですが、削除ができません。
2の読み込みの部分を、データのappendみたいなことをしてから、
channelをcloseしてファイルを削除することはできます。
何か足りないのでしょうか?書いてみたコードは下記の通りです。
public void example(){
byte[] bytes1 = {0x41, 0x42, 0x43};
File file1 = new File("C:/temp/test.txt");
RandomAccessFile raf1 = new RandomAccessFile(file1, "rw");
FileChannel ch1 = raf1.getChannel();
ByteBuffer buffer1 = ByteBuffer.wrap(bytes1);
ch1.write(buffer1);
ch1.close();
raf1.close();
File file2 = new File("C:/temp/test.txt");
RandomAccessFile raf2 = new RandomAccessFile(file2, "rw");
FileChannel ch2 = raf2.getChannel();
MappedByteBuffer buf = ch2.map(FileChannel.MapMode.READ_ONLY, 0, ch2.size());
byte[] data = new byte[(int)buf.capacity()];
buf.get(data);
buf = null;
ch2.close();
raf2.close();
file2.delete(); // data[0]〜data[2]に値は入っているが、deleteできない
}
■ このスレッドは過去ログ倉庫に格納されています