2013-11-10 57 views
0

我想覆蓋到一個文本文件使用Java通過首先創建一個新的文件,然後刪除舊的,最後重命名我剛剛創建的文件與我的舊文件相同的名稱。 但我的代碼不起作用。如何刪除java中的文本文件?

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

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

您的意思是'newFile.renameTo(的oldfile);'? –

+0

@MattBall對於錯字感到抱歉 – user2350622

回答

0

在某些平臺(例如Windows!)上,無法刪除當前程序或其他程序已打開的文件。我預計這會導致程序中的刪除步驟失敗......如果這是實際發生的事情。

正如@Matt Ball的評論指出的那樣,它可能是失敗的重命名......因爲在你向我們展示的代碼中,你實際上是將自己的「new.txt」重命名爲它自己!

最後,您的通話oldFile.deleteOnExit()幾乎可以肯定是不正確的:

  • 它不會影響oldFile刪除下面的代碼......如果這是你的意圖。

  • 如果成功,它會(我想!)刪除您仔細更名爲「charList.txt」的文件。 A File表示文件路徑名...不是文件句柄。

0
  • 隨着deleteOnExit()你刪除的oldfile當虛擬機終止。我認爲這不是你想要的,因爲你正在下一個命令的同一個文件中調用delete()
  • 此外,您正在將您的newFile重命名爲newFile而不是oldFile。嘗試

    newFile.renameTo(的oldfile)