如何在Java 7或Java 8中创建文件(如果不存在)?
我不确定您想要什么,但是举个例子:
try {
Files.createFile(thePath);
} catch (FileAlreadyExistsException ignored) {
}
还有其他解决方案;例如:
if (!Files.exists(thePath, LinkOption.NOFOLLOW_LINKS))
Files.createFile(thePath);
请注意,与File
不同的是,如果文件创建失败,这些方法将抛出异常!这些异常还非常相关(例如AccessDeniedException
,ReadOnlyFileSystemException
等等)
有关更多信息,请参见此处。 还可以参见为什么应该尽快迁移到java.nio.file
。
你可以做
File f = new File("pathToYourFile");
if(!f.exists() && !f.isDirectory())
{
f.createNewFile()
}
如果你想使用NIO.2,可以使用Files类中的方法。
boolean exists(Path path,LinkOption. . . options)
Path createTempFile(Path dir, String prefix,String suffix, FileAttribute<?>. . . attrs)
createFile(Path path, FileAttribute<?>... attrs)
createNewFile()
方法返回一个布尔值,表示文件是否实际创建。不幸的是,我们无法知道为什么它失败了。事实上,这就是引入NIO.2 I/O API的原因之一。.createNewFile()
的结果! - fge
new FileOutputStream(...)
或其他类似的方法。要求一个Java 7或8的解决方案需要有动机。 - user207421