如何通过java nio编写器覆盖文件?

2022-08-31 16:49:17

我尝试文件编写器,如下所示:

String content = "Test File Content";
  • 我用了喜欢:Files.write(path, content.getBytes(), StandardOpenOption.CREATE);

如果未创建文件,则创建文件并写入内容。但是如果文件可用,则文件内容是并且如果重复运行代码,则文件内容是...Test File ContentTest File ContentTest File ContentTest File ContentTest File Content

  • 我用了这样的: ,Files.write(path, content.getBytes(), StandardOpenOption.CREATE_NEW);

如果未创建文件,则创建文件,并显示异常,如下所示:

java.nio.file.FileAlreadyExistsException: /home/gyhot/Projects/indexing/ivt_new/target/test-classes/test_file at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88) at ...

如何通过java新的I / O覆盖文件?


答案 1

您希望调用不带任何参数的方法。OpenOption

Files.write(path, content.getBytes());

来自 Javadoc:

options 参数指定如何创建或打开文件。如果不存在任何选项,则此方法的工作方式与存在 、 和 选项相同。换句话说,它打开文件进行写入,如果文件不存在,则创建文件,或者最初将现有的常规文件截断为CREATETRUNCATE_EXISTINGWRITE0


答案 2

您希望同时使用StandardOpenOption.TRUNCATE_EXISTING和 StandardOpenOption.CREATE 选项:

Files.write(path, content.getBytes(),
         StandardOpenOption.CREATE,
         StandardOpenOption.TRUNCATE_EXISTING );

推荐