1. 概要

このクイックチュートリアルでは、特定のディレクトリにファイルを作成する方法を見ていきます。

絶対ファイルパスと相対ファイルパスの違いを確認し、いくつかの主要なオペレーティングシステムで機能するパスを使用します。

2. 絶対および相対ファイルパス

2.1. 絶対パス

パス全体(絶対パスとも呼ばれます)を参照して、ディレクトリにファイルを作成することから始めましょう。 実例を示すために、ユーザー temp ディレクトリへの絶対パスを使用し、そこにファイルを追加します。

空のファイルを作成する簡単な方法として、GoogleGuavaの一部であるFiles.touch()を使用しています。

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithAbsolutePath = new File(tempDirectory.getAbsolutePath() + "/testFile.txt");

assertFalse(fileWithAbsolutePath.exists());

Files.touch(fileWithAbsolutePath);

assertTrue(fileWithAbsolutePath.exists());

2.2. 相対パス

別のディレクトリに相対的なディレクトリにファイルを作成することもできます。 たとえば、ユーザーtempディレクトリにファイルを作成しましょう。

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File fileWithRelativePath = new File(tempDirectory, "newFile.txt");

assertFalse(fileWithRelativePath.exists());

Files.touch(fileWithRelativePath);

assertTrue(fileWithRelativePath.exists());

上記の例では、新しいファイルがユーザーtempディレクトリのパスに追加されています。

3. プラットフォームに依存しないファイルセパレーターの使用

ファイルパスを作成するには、/\などの区切り文字を使用する必要があります。 ただし、使用する適切なセパレータは、オペレーティングシステムによって異なります。 幸いなことに、もっと簡単な方法があります。 区切り文字の代わりにJavaのFile.separatorを使用できます。 その結果、Javaは適切なセパレーターを選択します。

この方法でファイルを作成する例を見てみましょう。

File tempDirectory = new File(System.getProperty("java.io.tmpdir"));
File newFile = new File(tempDirectory.getAbsolutePath() + File.separator + "newFile.txt");

assertFalse(newFile.exists());

Files.touch(newFile);

assertTrue(newFile.exists());

File.separator を使用して、Javaは基盤となるファイルシステムに基づいてパスを構築する方法を知っています。

4. 結論

この記事では、絶対パスと相対パスの違いと、いくつかの主要なオペレーティングシステムで機能するファイルパスを作成する方法について説明しました。

いつものように、サンプルコードはGitHubから入手できます。