在代码中如果
File file = new File("D:/a.txt");
后,怎么释放file对D:/a.txt文件的引用?
因为后面我还需要用其它的File对象将文件删除。

解决方案 »

  1.   

    文件都有个文件流,吧文件流关闭就可以了
    它应该有个close方法。
      

  2.   

    file = null;这招不灵啊!
      

  3.   

    同意 spiniper() ( ) 信誉:100  
    你file后,肯定要对文件操作,不能占着不放,
    对file进行操作的就是流,操作完后,关闭流就释放了
      

  4.   

    File并不持续的锁定一个文件。没记错的话只有一个delete方法吧,因而不需要显式的去释放。应该是其他的操作占用的。比如你开了一个什么stream或者reader美有调用close
      

  5.   

    File file=new File("x:\\sdfk.txt");
    并不会真的去把这个文件读到内存中,所以根本就没有占用,你的问题应该出在流没有关闭上吧。
      

  6.   

    同样遇到这样的问题. 在删除时会提示,该文件正在被程序应用.不能删除.
    难着这样不能释放么.               File tempfile = new File(tempaddr + tempstr);
                  item.write(tempfile);
                  tempfile = null;
    这样还是不能删除.怎样解决?
      

  7.   

    我也遇到了此问题.
    我在删除前增加了一句: System.gc();当然这个办法不一定最好, 但没找到别的方法