求助::读完文件想删除``但失败```

gembler 2007-07-15 07:25:37
FileInputStream fis = new FileInputStream("test.htm");
FileChannel fc = fis.getChannel();
ByteBuffer bbuf = fc.map(FileChannel.MapMode.READ_ONLY, 0, (int) fc.size());
CharBuffer cbuf = Charset.forName("utf-8").newDecoder().decode(bbuf);
String str = new String(cbuf.array());

//....对str的操作

cbuf.clear();
bbuf.clear();
fc.close();
fis.close();

File f = new File("test.htm");
f.delete(); //------这里返回了false,文件删除不了``

听说是什么共享的问题,自己都搞不掂```
请帮忙~~
...全文
235 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gembler 2007-07-15
  • 打赏
  • 举报
回复
jefyjiang牛``一言惊醒梦中人```结帖
jefyjiang 2007-07-15
  • 打赏
  • 举报
回复
MappedByteBuffer的文档说"映射的字节缓冲区和它所表示的文件映射关系在该缓冲区本身成为垃圾回收缓冲区之前一直保持有效"试试在
cbuf.clear();
bbuf.clear();
fc.close();
fis.close();
后加fc=null;System.gc();
然后再删
gembler 2007-07-15
  • 打赏
  • 举报
回复
不知道是不是FileChannel的问题``
我的文本文件有3M多``
读完文件后就要删,
如果不是FileChannel快些我都不用他``
现在读完后删不了```郁闷
gembler 2007-07-15
  • 打赏
  • 举报
回复
确认``
我只开着JB就只有这个类``
orangemike 2007-07-15
  • 打赏
  • 举报
回复
我想问的是,你确认test.htm没有被别的程序打开着?太奇怪了。
gembler 2007-07-15
  • 打赏
  • 举报
回复
人呢??怎么没人帮忙解决???? T_T
gembler 2007-07-15
  • 打赏
  • 举报
回复
AWUSOFT
加一个if(file.exists())
{
file.delete();
}

文件是肯定存在的
awusoft 2007-07-15
  • 打赏
  • 举报
回复
加一个if(file.exists())
{
file.delete();
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧