文件删除和重命名不起作用

时间:2014-02-08 19:14:56

标签: java file

这是代码,但它不删除storedIp文件并将tempFile重命名为storedIP。两个文件都存在

               String host=ipParsing(hostName);
               File tempFile= new File("tempFile.txt");
               File strFile = new File("StoredIp.txt");
        BufferedReader bufferReader = new BufferedReader( new FileReader(strFile));
        BufferedWriter bw = new BufferedWriter(new FileWriter(tempFile));
                String line;
        while ((line = bufferReader.readLine()) != null)   {
             if(host.equals(line))
                        {
                            found=true;
                            line="";
                        }
                            bw.write(line);
                        if(!line.equals(""))
                            bw.newLine();
                  }
       bw.close();
       bufferReader.close();
               strFile.delete();
               tempFile.renameTo(new File ("StoredIP.txt"));

2 个答案:

答案 0 :(得分:2)

好吧,调用File.delete()无需删除文件。 正如JavaDoc所说:一定要检查返回值。

忽略这一点(就像你一样)是一个常见的错误来源。

答案 1 :(得分:1)

这种删除/重命名容易出错的一种情况是文件正在使用。看到的解决方案包括使用额外的锁定文件。对于这么简单的事情来说太复杂了。

使用嵌入式数据库,就像java自己的Derby一样,这并不困难。数据库不需要额外的规定。有很好的教程和简单的示例代码。