【发布时间】:2014-04-26 07:30:00
【问题描述】:
我有以下一段代码,它允许我重新创建一个包含更新数据的文件。即使我使用“StandardOpenOption.TRUNCATE_EXISTING”选项覆盖旧文件,但我收到一个错误消息,指出该文件已经存在并且不会在其上写入!
File filename = new File("data.txt");
public void writeToFile(char[] data){
filename.delete();
Files.write(filename.toPath(), data, StandardOpenOption.TRUNCATE_EXISTING);
}
是否可以不一遍又一遍地删除和重新创建同一个文件来编辑初始文件的数据?
谢谢
EDIT1:这似乎是我的错误。连同“StandardOpenOption.TRUNCATE_EXISTING”,我包括了“StandardOpenOption.CREEATE_NEW”。 这是因为我希望创建该文件以防万一它不存在!怎么可能先尝试编辑它,如果它不存在创建一个新的?
对不起,我最初的错误
【问题讨论】:
-
你用的是什么语言
-
我不清楚您要做什么,但是 StandardOpenOption.TRUNCATE_EXISTING 在您打开文件时会截断文件内容,因此您只需删除对 .delete() 方法的调用。
-
我正在使用 java @Dason
-
@Max 这正是我最初所做的,但是当它尝试写入并且文件已经存在时,我收到了一个错误:java.io.IOException: java.nio.file.FileAlreadyExistsException:数据.txt
-
这是出乎意料的,因为它显然违背了文档中的内容。你用的是什么JDK版本?