web-dev-qa-db-ja.com

クリーンJava存在しない場合にファイルを作成する7つの方法

Java 7またはJava 8が存在しない場合にファイルを作成する方法は何ですか?

11
emotionull

何が欲しいかわからないが、例えば:

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

そして他の解決策があります。例えば:

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

Fileとは異なり、これらはファイルの作成に失敗すると例外をスローすることに注意してください!そして、それに関連するもの(たとえば、AccessDeniedExceptionReadOnlyFileSystemExceptionなど)

詳細は here を参照してください。 Java.nio.fileにすばやく移行する必要がある理由 も参照してください。

24
fge

できるよ

_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が言及したように、createNewFile()メソッドは、ファイルが実際に作成されたかどうかを示すboolean値を返します。残念ながら、なぜ失敗したのかを知る方法はありません。実際、これがNIO.2 I/O APIが導入された理由の1つです。

1
Aniket Thakur