重写文件而不是重新创建文件

时间:2014-03-19 19:31:13

标签: java file rewrite

我有以下代码,允许我重新创建一个包含更新数据的文件。即使我使用了" StandardOpenOption.TRUNCATE_EXISTING"覆盖旧文件的选项我收到一个错误,说文件已经存在,并且它不会写在它上面!

File filename = new File("data.txt");
public void writeToFile(char[] data){
    filename.delete();
    Files.write(filename.toPath(), data, StandardOpenOption.TRUNCATE_EXISTING);
}

是否可以反复删除和重新创建相同的文件来编辑初始文件的数据?

谢谢

编辑1:看起来这是我的错误。与" StandardOpenOption.TRUNCATE_EXISTING"一起使用我已经包含了#34; StandardOpenOption.CREEATE_NEW"。 这是因为我希望创建文件以防它已经存在!如何首先尝试编辑它,如果它不存在则创建一个新的?

抱歉我最初的错误

2 个答案:

答案 0 :(得分:0)

继续这个(对我有用)的方法是创建一个try{}catch{}块并在"尝试"尝试编辑该文件,如果它失败,因为它不存在,请在" catch"中创建一个新文件。

答案 1 :(得分:0)

查看Files类中write方法的JavaDoc,它说:“默认情况下,该方法会创建一个新文件或覆盖现有文件”,所以你需要做的就是:

File filename = new File("data.txt");

public void writeToFile(char[] data) throws IOException {
    Files.write(filename.toPath(), data);
}