Javaファイル操作のマスター:java.ioによる作成・読み取り・書き込み・削除
Java File クラス
java.io.File クラスとその主要なファイルシステム操作を、わかりやすい例とともに解説します。
java.io パッケージの File クラスは、ファイルシステム上のファイルやディレクトリをプログラムから操作するためのインターフェースを提供します。より新しい java.nio.file API も追加機能を備えていますが、本ガイドでは従来の java.io アプローチに焦点を当てます。
ファイルとディレクトリ
ファイルはデータを格納する名前付きの場所です。例えば、main.java には Java プログラムのソースコードが含まれます。
ディレクトリ(フォルダ)は、ファイルや他のディレクトリ(サブディレクトリ)を格納するコンテナです。これらの概念を理解することは、Java でファイルシステムを操作する基礎となります。
File オブジェクトの作成
まずクラスをインポートします:
import java.io.File;
次にパス名を指定してインスタンス化します:
// 指定したパスを表す File オブジェクトを作成
File file = new File("path/to/file.txt");
File インスタンスは単なる抽象的な表現であり、ディスク上に物理的なファイルを作成するものではありません。
注意: File をインスタンス化してもファイルは作成されず、パス名を保持するだけです。
主要なファイル操作
| 操作 | メソッド | パッケージ |
|---|---|---|
| ファイルの作成 | createNewFile() | java.io.File |
| ファイルの読み取り | read() | java.io.FileReader |
| ファイルへの書き込み | write() | java.io.FileWriter |
| ファイルの削除 | delete() | java.io.File |
ファイルの作成
createNewFile() メソッドは、指定されたパスに新しいファイルの作成を試みます。戻り値は以下の通りです:
true:ファイルが以前存在せず、新たに作成された場合false:その場所にすでにファイルが存在する場合
例:新しいファイルの作成
import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("newFile.txt");
try {
boolean created = file.createNewFile();
if (created) {
System.out.println("新しいファイルが作成されました。");
} else {
System.out.println("ファイルは既に存在します。");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
newFile.txt が存在しない場合、プログラムの出力は:
新しいファイルが作成されました。
すでに存在する場合の出力は:
ファイルは既に存在します。
ファイルの読み取り
読み取りは InputStream または Reader のサブクラスで行えます。一般的な選択は FileReader です。
例:FileReader でファイルを読み取る
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
char[] buffer = new char[100];
try {
FileReader reader = new FileReader("input.txt");
reader.read(buffer);
System.out.println("ファイル内のデータ:");
System.out.println(buffer);
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
サンプルファイル input.txt の内容:
This is a line of text inside the file.
プログラム実行時の出力:
ファイル内のデータ: This is a line of text inside the file.
ファイルへの書き込み
書き込みは通常、OutputStream または Writer のサブクラス(FileWriter など)で行います。
例:FileWriter でファイルに書き込む
import java.io.FileWriter;
public class Main {
public static void main(String[] args) {
String data = "This is the data in the output file";
try {
FileWriter writer = new FileWriter("output.txt");
writer.write(data);
System.out.println("データがファイルに書き込まれました。");
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
生成される output.txt の内容:
This is the data in the output file.
ファイルの削除
delete() メソッドは、指定されたファイルまたはディレクトリを削除します。戻り値は:
true:削除が成功した場合false:ファイルが存在しない、または削除できない場合
注意: delete() で削除できるのは空のディレクトリのみです。
例:ファイルの削除
import java.io.File;
public class Main {
public static void main(String[] args) {
File file = new File("file.txt");
boolean deleted = file.delete();
if (deleted) {
System.out.println("ファイルが削除されました。");
} else {
System.out.println("ファイルを削除できませんでした。");
}
}
}
出力:
ファイルが削除されました。
関連例
- Java でディレクトリを作成
- Java でファイル名を変更
- Java でディレクトリ内のファイル一覧を取得
- Java でファイルをコピー
Java
- Javaのfinalキーワード完全解説:変数、メソッド、クラスでの活用法
- Java instanceof演算子完全ガイド:基本から継承・インターフェースまで
- Java継承のマスター:概念、種類、実践例
- Java Staticネストクラスの理解:用法、違い、実例
- Java無名インナークラス完全ガイド:定義、構文、実践例
- Javaシングルトンパターン完全解説:安全な実装と活用法
- Javaリフレクション完全ガイド:実行時のクラス・メソッド・フィールド検査
- Java ArrayList完全マスター:操作・メソッド・ベストプラクティス
- Java ObjectOutputStream完全ガイド:シリアル化、メソッド、実践例
- Java BufferedReader完全ガイド:効率的な文字ストリーム処理
- Javaジェネリクス完全ガイド:再利用可能で型安全なコードの構築