干净的Java 7创建文件的方法,如果不存在[已关闭]

2022-09-04 07:02:35

如果 Java 7 或 Java 8 不存在,创建文件的方法是什么?


答案 1

不确定你想要什么,但例如:

try {
    Files.createFile(thePath);
} catch (FileAlreadyExistsException ignored) {
}

还有其他解决方案;例如:

if (!Files.exists(thePath, LinkOption.NOFOLLOW_LINKS))
    Files.createFile(thePath);

请注意,与 不同,如果文件创建失败,这些将引发异常!以及相关的(例如,,,等)FileAccessDeniedExceptionReadOnlyFileSystemException

有关详细信息,请参阅此处。另请参阅为什么您应该快速迁移到java.nio.file


答案 2

你可以做

File f = new File("pathToYourFile");
if(!f.exists() && !f.isDirectory())
{
    f.createNewFile()
}

如果你想使用NIO.2,你可以使用方法文件类。

boolean exists(Path path,LinkOption. . . options)
Path createTempFile(Path dir, String prefix,String suffix, FileAttribute<?>. . . attrs)
createFile(Path path, FileAttribute<?>... attrs)

正如 fge 在注释中提到的,方法返回值,表示文件是否实际创建。不幸的是,没有办法知道为什么它失败了。事实上,这是NIO.2 I/O API被引入的原因之一。createNewFile()boolean