Javaでファイルを読み書きする方法|FileReaderとFileWriter

先生

JavaのFileReaderとFileWriterを使って、ファイルの読み書きをマスターしよう!サンプルコード付きで初心者にも分かりやすく解説します。

Javaでファイルを読み書き:FileReaderとFileWriter入門

Javaでファイルを読み書きする方法はいくつかありますが、FileReaderFileWriterは最も基本的なクラスです。この記事では、これらのクラスを使ってテキストファイルを読み書きする方法を、初心者にもわかりやすく解説します。

ファイル操作は、多くのアプリケーションで必要となる重要な機能です。設定ファイルの読み込み、ログファイルの書き込み、データの保存など、様々な場面で利用されます。FileReaderFileWriterをマスターすることで、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の注意点

FileReaderFileWriterは、テキストファイルを扱うのに便利なクラスですが、いくつかの注意点があります。

まず、これらのクラスは文字エンコーディングをシステムのデフォルトエンコーディングに依存しています。異なるエンコーディングのファイルを扱う場合は、InputStreamReaderOutputStreamWriterクラスを使用し、明示的にエンコーディングを指定する必要があります。

また、大量のデータを扱う場合は、BufferedReaderBufferedWriterクラスを組み合わせることで、パフォーマンスを向上させることができます。

さらに、ファイルの読み書きを行う際には、IOExceptionが発生する可能性があります。try-catchブロックで例外を適切に処理するようにしましょう。

参考リンク

まとめ

FileReaderFileWriterは、Javaでテキストファイルを読み書きするための基本的なクラスです。これらのクラスを使うことで、簡単にファイルの操作を行うことができます。ただし、エンコーディングやパフォーマンスなど、注意すべき点もあります。これらの注意点を踏まえて、FileReaderFileWriterを使いこなし、Javaプログラミングのスキルを向上させましょう。