0

最初に新しいファイルを作成してから古いファイルを削除し、最後に作成したファイルの名前を古いファイルと同じ名前に変更して、Javaを使用してテキストファイルに上書きしたいと考えています。しかし、私のコードは機能しません。

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

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

2 に答える 2

0

一部のプラットフォーム (Windows など) では、現在のプログラムまたは別のプログラムが開いているファイルを削除できません。プログラムの削除ステップが失敗する原因はそれだと思います...それが実際に起こっているのであれば。

@Matt Ballのコメントが指摘しているように、名前の変更が失敗している可能性があります...あなたが示したコードでは、実際に「new.txt」の名前をそれ自体に変更しているためです!

最後に、あなたのoldFile.deleteOnExit()呼び出しはほぼ間違いなく間違っています:

  • 次のコードの削除には影響しませんoldFile...それがあなたの意図であれば。

  • 成功した場合は、慎重に「charList.txt」に名前を変更したファイルが削除されると思います。AFileはファイル パス名を示します...ファイル ハンドルではありません。

于 2013-11-10T06:22:53.237 に答える
0
  • 仮想マシンが終了すると、 oldFiledeleteOnExit()が削除されます。delete()次のコマンドで同じファイルを呼び出しているため、これはあなたが望んでいたものではないと思います。
  • さらに、newFile の名前を oldFile ではなく newFile に変更しています。試す

    newFile.renameTo(oldFile)

于 2013-11-10T06:24:45.917 に答える