
【Java】文書の読込み・出力方法
システム開発をしていると、ファイル入出力の処理機能を実装する場合があると思います。
ただ、初心者の方はファイル入出力とはどういうことなのか分からないと思う方もいると思うので、今回はファイル入出力とはどういうものか、どのような時に使うのか、どのように実装するのかを順に解説していきます。
1. ファイル入出力とは

そもそもファイル出力とは、エクセル、ワード、テキストファイルなどの文書ファイルとよばれるものをシステムに取り込むことをファイル入力と言います。
ファイル出力とは、システム内のデータを文書に出力することをファイル出力といいます。
ではどのような時に使うのか説明します。
2. ファイル入出力が使用される理由

まずなぜファイル入出力が必要なのかを説明します。
データの永続化:
プログラムが作成したデータやユーザーの入力データをファイルに書き込むことで、そのデータを永続させることができます。データをファイルに保存することで、プログラムの実行が終了しても情報を保持したまま、後から読み込んで利用することが可能です。
データの共有、連携:
ファイルは異なるプログラムやシステム間でデータを交換する手段として利用されます。プログラムが生成したファイルを別のプログラムで読み込んで処理することで、データの共有や連携が可能になります。
データのバックアップ:
ファイルにデータを保存することで、重要な情報や設定をバックアップすることができます。万が一プログラムやシステムに障害が発生しても、ファイルに保存されたデータを利用して復旧することができます。
外部リソースの利用:
ファイル入出力は、プログラムが外部リソース(例えば、画像、音声、動画ファイルなど)を取り扱う際にも重要です。外部リソースをファイルとして読み込んで処理することで、プログラムの機能を拡張したり、マルチメディアデータを扱うことができます。
ログの記録:
プログラムの実行状態やエラーの情報をファイルに記録することで、デバッグやトラブルシューティングが行いやすくなります。ログファイルには実行履歴や重要なイベントのタイムスタンプなどが記録され、システムの監視や分析に役立ちます。
外部からのデータ取得:
ファイル入出力は、外部からのデータをプログラムに取り込む手段としても利用されます。例えば、テキストファイルやCSVファイルからデータを読み込んで処理することで、外部からのデータ入力を受け付けることができます。
上記のような理由でファイル入出力が必要になってきます。
続いてどういった場面で使用されるのか具体例を述べていきます。
3. ファイル入出力が使用される場面

テキストファイルや設定ファイルの読み書き:
アプリケーションの設定やユーザーのデータをテキストファイルに保存し、後からそれらを読み込んで再利用します。
データベースやCSVファイルからのデータ取得:
データベースから「抽出」や「更新」といった処理の結果をファイルにエクスポートしたり、CSVファイルからデータを読み込んで処理します。
画像や音声ファイルの読み込み:
グラフィックスやマルチメディアアプリケーションでは、画像や音声ファイルをファイル入出力を通じて取り扱います。
アプリケーションのログやデバッグ情報の出力:
アプリケーションの実行ログをファイルに記録し、問題が起きた際のトラブルシューティングや動作解析に使用します。
ファイル形式の変換:
データを異なるファイル形式に変換するために、ファイル入出力を利用して変換を行います。例えば、JSONからXMLへの変換などです。
重要なデータのバックアップ:
システムやアプリケーションの重要なデータを定期的にファイルにバックアップし、データの損失を防ぎます。
ファイルの送受信:
ネットワーク経由でファイルを送受信する際に、ファイル入出力が活用されます。例えば、FTPやHTTPなどがそれにあたります。
テストケースやサンプルデータの生成:
テストケースの入力データやサンプルデータをファイルに書き出して利用します。
上記のようにかなり多くの場面でファイル入出力が使用されています。
なのでファイル入出力について理解しておく必要はあると思います。
では最後にファイル入出力についてコードの一例を簡単に解説しながら述べていきます。
4. ファイル入出力の例

下記がコードの一例になります。
ファイルの入力、出力、メインのクラスの3つに分けてコードを分割して書いてます。
まずはファイルの入力からです。
1.ファイルの入力
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileInputReader {
private String filePath;
public FileInputReader(String filePath) {
this.filePath = filePath;
}
public String readFile() {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append("\n");
}
} catch (IOException e) {
System.err.println("ファイルの読み込み中にエラーが発生しました: " + e.getMessage());
}
return content.toString();
}
}
このFileInputReaderというクラス は、指定されたファイルパスからテキストファイルを読み込み、その内容を文字列として返すメソッド readFile() を持っています。
2.ファイルの出力
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileOutputWriter {
private String filePath;
public FileOutputWriter(String filePath) {
this.filePath
5. まとめ
以上が、ファイルの入出力についてどういうものか、どのような時に使うのか、どのように実装するのかを解説しました。ファイル入出力はどのシステムでも多く実装されています。
個人で簡単なシステムを作って、データベースに登録する際も必要な技術になります。
読み込んだデータはデータベースに登録することが多くあるため、ファイルの入出力の実装に関する知識は持っておくべき知識だと思います。
この機会にぜひ自分で実装してみてください。