如何覆盖现有的.txt文件

mir*_*zak 4 java file

我有一个创建.txt文件的应用程序.我想覆盖它.这是我的功能:

try{
    String test = "Test string !";
    File file = new File("src\\homeautomation\\data\\RoomData.txt");

    // if file doesnt exists, then create it
    if (!file.exists()) {
        file.createNewFile();
    }else{

    }

    FileWriter fw = new FileWriter(file.getAbsoluteFile());
    BufferedWriter bw = new BufferedWriter(fw);
    bw.write(test);
    bw.close();

    System.out.println("Done");
}catch(IOException e){
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

如果文件存在,我应该在else子句中放入什么,以便它可以被覆盖?

Dic*_*ici 6

你不需要在else子句中做任何特别的事情.您实际上可以Writer使用两种不同的模式打开文件:

  • 默认模式,覆盖整个文件
  • append mode(在构造函数中由boolean set指定true),它将新数据附加到现有数据


zmf*_*zmf 5

您不需要做任何事情,默认行为是覆盖。

不知道为什么我被否决了,说真的……这段代码总是会覆盖文件

try{
        String test = "Test string !";
        File file = new File("output.txt");

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(test);
        bw.close();

        System.out.println("Done");
    }catch(IOException e){
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)