【问题标题】:How to overwrite file via java nio writer?如何通过java nio writer覆盖文件?
【发布时间】:2013-11-16 15:05:23
【问题描述】:

我尝试如下文件编写器:

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: /home/gyhot/Projects/indexing/ivt_new/target/test-classes/test_file 在 sun.nio.fs.UnixException.translateToIOException(UnixException.java:88) 在 ...

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

【问题讨论】:

    标签: java io nio java-io


    【解决方案1】:

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

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

    来自 Javadoc:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-26
        • 1970-01-01
        • 2015-01-25
        • 2016-01-26
        • 2022-01-12
        相关资源
        最近更新 更多