
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プログラミングのスキルを向上させましょう。

