Java - ファイルを作成する

Java –ファイルを作成する

このクイックチュートリアルでは、Javaで新しいファイルを作成する方法を学習します。最初にJDK6を使用し、次にNIOを備えた新しいJDK7を使用し、最後にApache Commons IOライブラリを使用します。

この記事は、例としてここのthe “Java – Back to Basic” seriesの一部です。

1. Javaを使用– JDK 6

the standard solution using the old JDK 6 File 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

次に、JDK7でNIO2サポートを使用する新しいソリューションを見てみましょう。

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

ご覧のとおり、コードはまだ非常に単純です。現在、古いFileの代わりに新しいPathインターフェースを使用しています。

ここで注意すべきことの1つは、新しいAPIが例外をうまく利用していることです。ファイルがすでに存在する場合は、リターンコードを確認する必要がなくなります。代わりにFileAlreadyExistsExceptionを取得します。

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

3. グアバと

新しいファイルを作成するためのGuavaソリューションも、簡単な1つのライナーです。

@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"));
}

これは前の例とは少し異なる動作をすることに注意してください–the file already exists, the operation doesn’t failの場合–単に何もしません。

そして、Javaで新しいファイルを作成する4つの簡単な方法があります。