在Java 7中使用Files.newBufferedWriter创建新文件或覆盖现有文件

17

我正在尝试使用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个回答

35

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

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

选项参数指定文件是如何创建或打开的。如果没有提供任何选项,则此方法将像CREATE、TRUNCATE_EXISTING和WRITE选项都存在一样工作。换句话说,它以写模式打开文件,如果文件不存在,则创建文件,如果文件存在,则最初将其截断为大小0。

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

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

这个不再起作用了,它会抛出NoSuchFileException异常。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接