
JavaのFileReaderとFileWriterを使って、ファイルの読み書きをマスターしよう!サンプルコード付きで初心者にも分かりやすく解説します。
Javaでファイルを読み書き:FileReaderとFileWriter入門
Javaでファイルを読み書きする方法はいくつかありますが、FileReader
とFileWriter
は最も基本的なクラスです。この記事では、これらのクラスを使ってテキストファイルを読み書きする方法を、初心者にもわかりやすく解説します。
ファイル操作は、多くのアプリケーションで必要となる重要な機能です。設定ファイルの読み込み、ログファイルの書き込み、データの保存など、様々な場面で利用されます。FileReader
とFileWriter
をマスターすることで、Javaプログラミングの幅が広がります。
FileReader:テキストファイルの読み込み
FileReader
クラスは、テキストファイルを文字ストリームとして読み込むためのクラスです。FileInputStreamをラップして使用され、文字エンコーディングを意識せずにテキストファイルを扱うことができます。
基本的な使い方は、FileReader
オブジェクトを作成し、read()
メソッドを使ってファイルから文字を読み込むことです。
import java.io.FileReader;
import java.io.IOException;
public class FileReaderExample {
public static void main(String[] args) {
try (FileReader reader = new FileReader("input.txt")) {
int character;
while ((character = reader.read()) != -1) {
System.out.print((char) character);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
この例では、input.txt
というファイルから文字を読み込み、コンソールに出力しています。try-with-resources
ステートメントを使用することで、FileReader
が自動的にクローズされ、リソースリークを防ぐことができます。
read()
メソッドは、読み込んだ文字のUnicode値を返します。ファイルの終わりに達すると、-1を返します。そのため、whileループの条件として (character = reader.read()) != -1
を使用しています。
FileWriter:テキストファイルへの書き込み
FileWriter
クラスは、テキストファイルを文字ストリームとして書き込むためのクラスです。FileOutputStreamをラップして使用され、文字エンコーディングを意識せずにテキストファイルを扱うことができます。
基本的な使い方は、FileWriter
オブジェクトを作成し、write()
メソッドを使ってファイルに文字を書き込むことです。
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExample {
public static void main(String[] args) {
try (FileWriter writer = new FileWriter("output.txt")) {
writer.write("Hello, world!\n");
writer.write("This is a test.\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
この例では、output.txt
というファイルに「Hello, world!」と「This is a test.」という2行のテキストを書き込んでいます。try-with-resources
ステートメントを使用することで、FileWriter
が自動的にクローズされ、リソースリークを防ぐことができます。
write()
メソッドは、文字列または文字をファイルに書き込みます。\n
は改行文字を表します。
FileReaderとFileWriterの注意点
FileReader
とFileWriter
は、テキストファイルを扱うのに便利なクラスですが、いくつかの注意点があります。
まず、これらのクラスは文字エンコーディングをシステムのデフォルトエンコーディングに依存しています。異なるエンコーディングのファイルを扱う場合は、InputStreamReader
やOutputStreamWriter
クラスを使用し、明示的にエンコーディングを指定する必要があります。
また、大量のデータを扱う場合は、BufferedReader
やBufferedWriter
クラスを組み合わせることで、パフォーマンスを向上させることができます。
さらに、ファイルの読み書きを行う際には、IOExceptionが発生する可能性があります。try-catchブロックで例外を適切に処理するようにしましょう。
参考リンク
まとめ
FileReader
とFileWriter
は、Javaでテキストファイルを読み書きするための基本的なクラスです。これらのクラスを使うことで、簡単にファイルの操作を行うことができます。ただし、エンコーディングやパフォーマンスなど、注意すべき点もあります。これらの注意点を踏まえて、FileReader
とFileWriter
を使いこなし、Javaプログラミングのスキルを向上させましょう。