我尝试编写文件如下:
String content = "Test File Content";
Files.write(path, content.getBytes(), StandardOpenOption.CREATE);
如果文件未创建,则创建文件并写入内容。但是如果文件可用,则文件内容为Test File ContentTest File Content
,如果代码运行重复,则文件内容为Test File ContentTest File ContentTest File Content
...
Files.write(path, content.getBytes(), StandardOpenOption.CREATE_NEW);
,如果文件未创建,则创建文件,而不是如下所示:
java.nio.file.FileAlreadyExistsException: /家庭/ gyhot /项目/索引/ ivt_new /目标/测试类/ test_file里面 在 sun.nio.fs.UnixException.translateToIOException(UnixException.java:88) 在 ...
如何通过java新I / O覆盖文件?
答案 0 :(得分:61)
您希望在没有任何OpenOption
参数的情况下调用该方法。
Files.write(path, content.getBytes());
来自Javadoc:
options参数指定如何创建或打开文件。 如果没有选项,那么此方法就像CREATE一样工作 存在TRUNCATE_EXISTING和WRITE选项。换句话说,它 打开文件进行写入,如果文件不存在则创建文件,或者 最初将现有的常规文件截断为0
答案 1 :(得分:35)
您希望同时使用StandardOpenOption.TRUNCATE_EXISTING和StandardOpenOption.CREATE选项:
Files.write(path, content.getBytes(),
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING );