このクイックチュートリアルでは、最初にJDK6を使用し、次に新しいJDK7とNIOを使用し、最後にhttp://commons.apache.org/proper/commons-io/[Apacheを使用して、Javaで新しいファイルを作成する方法を学習します。 Commons IO]ライブラリ。

この記事はリンクの一部です:/java-tutorial[The Java – Back to Basic]シリーズ、ここBaeldung。


1 Javaで – JDK 6

  • 古いJDK 6ファイルAPIを使った標準的な解決方法から始めましょう

@Test
public void givenUsingJDK6__whenCreatingFile__thenCorrect() throws IOException {
    File newFile = new File("src/test/resources/newFile__jdk6.txt");
    boolean success = newFile.createNewFile();

    assertTrue(success);
}

この操作が成功するには、ファイルが存在してはいけません。ファイルが存在する場合、

createNewFile

操作はfalseを返します。


2 Javaで – JDK 7

それでは、JDK 7のNIO 2サポートを使用した、新しいソリューションを見てみましょう。

@Test
public void givenUsingJDK7nio2__whenCreatingFile__thenCorrect()
  throws IOException {
    Path newFilePath = Paths.get("src/test/resources/newFile__jdk7.txt");
    Files.createFile(newFilePath);
}

ご覧のとおり、コードはまだ非常に単純です。現在は、古い

File

ではなく新しい

Path

インターフェイスを使用しています。

ここで注意しなければならないのは、新しいAPIは例外をうまく利用するということです – ファイルが既に存在する場合、戻りコードをチェックする必要はもうありません – 代わりに

FileAlreadyExistsException

が返されます。

java.nio.file.FileAlreadyExistsException: srctestresourcesnewFile__jdk7.txt
    at sun.n.f.WindowsException.translateToIOException(WindowsException.java:81)


3グアバ

とは

新しいファイルを作成するためのグアバの解決策は、迅速なワンライナーです。

@Test
public void givenUsingGuava__whenCreatingFile__thenCorrect() throws IOException {
    Files.touch(new File("src/test/resources/newFile__guava.txt"));
}


4コモンズIO

付き

Apache Commonsは、Linuxの“

touch

”ユーティリティと同じ動作を実装する

FileUtils.touch()

メソッドを提供します – それは新しい空のファイル、あるいはファイルシステムにファイルとそれへのフルパスを作成します。

@Test
public void givenUsingCommonsIo__whenCreatingFile__thenCorrect() throws IOException {
    FileUtils.touch(new File("src/test/resources/newFile__commonsio.txt"));
}

これは前の例とは少し違った振る舞いをすることに注意してください – ファイルが既に存在していても、操作は失敗しません** – それは単に何もしません。

Javaで新しいファイルを作成する4つの簡単な方法