Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java入門】一時ファイルの作成と削除方法をわかりやすく解説

はじめに

単体テストや一部のアプリケーションロジックでは、処理中に一時ファイル(テンポラリファイル)を作成する必要がある場合があります。Javaでは、java.io.Fileクラスが提供するメソッドを利用することで、一時ファイルを簡単に作成・削除できます。本記事では、その具体的な方法をサンプルコード付きで解説します。

一時ファイルの作成方法

Fileクラスには、一時ファイルを作成するためのcreateTempFile()メソッドが用意されています。このメソッドは主に以下の3つの情報を受け取ります。

  • prefix(プレフィックス): ファイル名の先頭に付ける文字列
  • suffix(サフィックス): 拡張子など、ファイル名の末尾に付ける文字列
  • directory(ディレクトリ): 一時ファイルを作成する場所を表すFileオブジェクト(抽象パス)

サンプルコード

次のJavaプログラムは、「D:/SampleDirectory」内に「exampleTempFile」というプレフィックスを持つ「.txt」形式の一時ファイルを作成します。

import java.io.File;
import java.io.IOException;

public class TemporaryFiles {
    public static void main(String args[]) throws IOException {
        String prefix = "exampleTempFile";
        String suffix = ".txt";

        // ディレクトリを表すFileオブジェクトを作成
        File directoryPath = new File("D:/SampleDirectory");

        // 一時ファイルを作成
        File.createTempFile(prefix, suffix, directoryPath);

        System.out.println("一時ファイルを作成しました.........");
    }
}

実行結果

一時ファイルを作成しました.........

この例では「exampleTempFile5387153267019244721.txt」のようなファイルが生成されます。createTempFile()メソッドは、ファイル名の末尾にランダムな数値を自動的に付加するため、同名ファイルとの重複を防げる点も便利です。

一時ファイルの削除方法

Fileクラスには、現在のファイルまたはディレクトリを削除するdelete()メソッドが用意されています。createTempFile()メソッドの戻り値として取得したFileオブジェクトに対してこのメソッドを呼び出せば、作成した一時ファイルを削除できます。

サンプルコード

次のJavaプログラムは、一時ファイルを作成した後、そのファイルを削除します。

import java.io.File;
import java.io.IOException;

public class TemporaryFiles {
    public static void main(String args[]) throws IOException {
        String prefix = "exampleTempFile";
        String suffix = ".txt";

        // ディレクトリを表すFileオブジェクトを作成
        File directoryPath = new File("D:/SampleDirectory");

        // 一時ファイルを作成
        File tempFile = File.createTempFile(prefix, suffix, directoryPath);
        System.out.println("作成された一時ファイル: " + tempFile.getAbsolutePath());

        // 一時ファイルを削除
        tempFile.delete();
        System.out.println("一時ファイルを削除しました.........");
    }
}

実行結果

作成された一時ファイル: D:\SampleDirectory\exampleTempFile7179732984227266899.txt
一時ファイルを削除しました.........

補足:より安全に一時ファイルを扱うポイント

  • deleteOnExit()メソッドの活用: JVM終了時に一時ファイルを自動的に削除したい場合は、tempFile.deleteOnExit()を呼び出しておくと便利です。
  • ディレクトリ指定を省略可能: createTempFile()の第3引数を省略すると、OS標準の一時フォルダ(Windowsなら「%TEMP%」、LinuxやmacOSなら「/tmp」など)にファイルが作成されます。
  • 例外処理への配慮: createTempFile()はIOExceptionをスローする可能性があるため、try-catch文による適切な例外処理を組み合わせると安心です。

使い終わった一時ファイルは必ず削除し、ディスク容量を無駄に消費しないようにしましょう。

  1. Javaでディレクトリ内のjpgファイル一覧を取得する方法

    FilenameFilterインターフェースを使った方法Fileクラスのlist(FilenameFilter filter)メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリの名前をString配列として返します。ただし、返される配列には、指定したフィルター条件を満たすファイル名のみが含まれます。FilenameFilterは、次の単一のメソッドを持つJavaのインターフェースです。accept(File dir, String name)拡張子に基づいてファイル名を取得したい場合は、このインターフェースを実装したクラスを作成し、そのインスタンスをF

  2. Javaでディレクトリ内のすべてのファイルを再帰的に一覧表示する方法

    この記事では、Javaを使って指定したディレクトリ内のすべてのファイルを再帰的に一覧表示するプログラムを解説します。サブディレクトリの中にあるファイルまで含めて取得できるため、フォルダ全体の内容を把握したい場合に便利なテクニックです。 前提となるディレクトリ構成 Dドライブ直下に「ExampleDirectory」というフォルダがあり、その中に7つのファイルと2つのサブディレクトリが格納されていると仮定します。 各サブディレクトリの内容は以下の通りです。 SampleDirectory1:SampleFile1.txt と SampleFile2.txt の2つのファイルを含みます。 Sa