Чистый Java 7 способ создания файла, если он не существует

Что такое способ Java 7 или Java 8 для создания файла, если он не существует?

Ответ 1

Не уверен, что вы хотите, но, например:

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

И есть другие решения; например:

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

Обратите внимание, что в отличие от File, они будут генерировать исключения, если сбой создания файла! И соответствующие им (например, AccessDeniedException, ReadOnlyFileSystemException и т.д. И т.д.)

Подробнее см. здесь. Также см. почему вы должны быстро перейти на java.nio.file.

Ответ 2

Вы можете сделать

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)

Как упоминалось в комментариях методы fge возвращают значение boolean, обозначающее, действительно ли файл был создан или нет. К сожалению, нет способа узнать, почему это не удалось. На самом деле это одна из причин, по которым были введены API-интерфейсы ввода-вывода NIO.2.