创建新文件或使用 Files 覆盖现有文件。newJava 7 中的BufferedWriter

2022-09-03 09:52:07

我正在尝试Java 7中的新Files.newBufferedWriter,但我无法得到一个工作的例子:如果它不存在,我想创建一个新文件,或者如果它存在,我想覆盖它。

我所做的是:

OpenOption[] options = {StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING};
BufferedWriter writer = Files.newBufferedWriter(Paths.get("example.txt"), StandardCharsets.UTF_8, options);

我也尝试了不同的选项,但我无法让它工作。

帮助?


答案 1

此函数的文档已经告诉我们:

newBufferedWriter(Path path, Charset cs, OpenOption... options)

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

因此,您可以不传递选项:

BufferedWriter writer = Files.newBufferedWriter(Paths.get("example.txt"), 
                                                StandardCharsets.UTF_8);

答案 2