【初心者】Java質問・相談スレッド113【大歓迎】at TECH
【初心者】Java質問・相談スレッド113【大歓迎】 - 暇つぶし2ch682:デフォルトの名無しさん
08/03/24 00:45:54
FileInputStreamからFileChannelを取得し、そのFileChannelでmap()を実行すると、ストリームやチャネルをクローズしても元ファイル(FileInputStreamのソース)を削除できません。
原因はMappedByteBufferによって使用中になってしまうからという単純なものなのですが、解決策が
FileInputStream fis = new FileInputStream(input);
FileChannel fc = fis.getChannel();
ByteBuffer buf = fc.map();
....
buf = null;
System.gc();
input.delete();

これくらいしか思いつきませんでした。
何かいい方法はないでしょうか?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch