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



这是代码,但它不会删除存储的IP文件并将临时文件重命名为存储IP。两个文件都存在

               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"));

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

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

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

使用嵌入式数据库,如Java自己的Derby,这并不难。数据库不需要额外的预配。有很好的教程和简单的示例代码。

最新更新