如何覆盖现有的.txt文件

时间:2014-11-06 17:10:55

标签: 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();
}

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

4 个答案:

答案 0 :(得分:6)

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

  • 默认模式,覆盖整个文件
  • 追加模式(在构造函数中通过设置为true的布尔值指定),将新数据附加到现有模式

答案 1 :(得分:2)

只需在您的else块中调用file.delete()即可。这应该删除该文件,如果这是你想要的。

答案 2 :(得分:0)

FileWriter(String fileName, boolean append)

构造一个FileWriter对象,给定一个带有布尔值的文件名,指示是否附加写入的数据。

以下一行代码将帮助我们将文件设为空。

FileUtils.write(new File("/your/file/path"), "")

以下代码将帮助我们删除该文件。

try{

            File file = new File("src\\homeautomation\\data\\RoomData.txt");

            if(file.delete()){
                System.out.println(file.getName() + " is deleted!");
            }else{
                System.out.println("Delete operation is failed.");
            }

        }catch(Exception e){

            e.printStackTrace();

        }

答案 3 :(得分:0)

您无需执行任何操作,默认行为是覆盖。

不知道为什么我被低估了,严重...这段代码将始终覆盖文件

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();
    }