如何在java中删除文本文件?

时间:2013-11-10 06:19:41

标签: java delete-file overwrite file-rename

我想使用java覆盖文本文件,首先创建一个新文件,然后删除旧文件,最后重命名我刚创建的文件,使用与旧文件相同的名称。 但我的代码不起作用。

                File oldFile = new File("charList.txt");
                    File newFile = new File("new.txt");
                    oldFile.deleteOnExit();

                    if(oldFile.delete()){
                       newFile.renameTo(oldFile);
                    }

2 个答案:

答案 0 :(得分:0)

在某些平台(例如Windows!)上,您无法删除当前程序或其他程序已打开的文件。我希望这是导致程序中的删除步骤失败的原因......如果这是实际发生的事情。

正如@Matt Ball的评论指出的那样,重命名可能是失败的......因为在你向我们展示的代码中,你实际上是在将“new.txt”重命名为自己!

最后,您的oldFile.deleteOnExit()电话几乎肯定不正确:

  • 这不会影响以下代码中oldFile的删除...如果这是您的意图。

  • 如果确实成功,它会(我认为!)删除您仔细重命名为“charList.txt”的文件。 File表示文件路径名...不是文件句柄。

答案 1 :(得分:0)

  • 使用deleteOnExit(),您将在虚拟机终止时删除oldFile。我认为这不是您想要的,因为您在下一个命令中对同一文件调用delete()
  • 此外,您正在将newFile重命名为newFile而不是oldFile。尝试

    newFile.renameTo(的oldfile)