Javaによるファイルの読み書き操作の包括的な説明
Javaでは、ファイルの読み書き操作は、Javaの入出力ストリーム(IO)クラスを使用して実現できます。Javaは、バイトストリームと文字ストリームを含む、ファイルの読み書き操作を実行するための、さまざまなIOクラスを提供しています。
バイトストリームクラスはバイト単位での読み書きを行い、画像、音声、動画などのバイナリファイルの処理に適しています。よく使用されるバイトストリームクラスとしては、次のようなものがあります。
- FileInputStream: ファイルからバイトデータを読み込むための入力ストリームクラス。
- ファイルにバイト型のデータを出力するための出力ストリームクラス
文字ファイルを扱っている文字列は文字単位で読み書きします。
- ファイルを文字データとして読むための入力ストリームクラス
- ファイルに文字データを書き込むための出力ストリームクラス
Javaにおけるファイルの読み書きの主な手順を以下に示します。
- 必要なリード/ライターファイルタイプに応じて、適切なI / Oストリームクラスを選択し、対応するI / Oストリームオブジェクトを作成します。
例えば、ファイルを読み込むFileInputStreamオブジェクトを作成する:
FileInputStream fis = new FileInputStream("file.txt");
- データの読み書き:入出力ストリームオブジェクトのメソッドを使用して、データを書き込みます。
例えば、FileInputStreamオブジェクトのread()メソッドを使用して、ファイルから 1 バイト読み取ります。
int data = fis.read();
- ストリームのクローズ : 読み取り/書き込みの完了時に、ストリームは直ぐに閉じられるべきです。
例えば、FileInputStream オブジェクトの close() メソッドを使用してストリームを閉じる。
fis.close();
JavaではIO操作時にIOException例外が発生することがあるので、IO操作を行う際はtry-catchを使用して例外を捕捉・処理する必要があります。
基本ファイル操作に加えて、Javaはファイルのランダムアクセス操作を行うRandomAccessFileクラスなどの一部の高度なファイル操作クラスを提供しています。さらに、Javaはファイル読み書きの効率を向上させるBufferedInputStreamやBufferedWriterなどのヘルパーを提供しています。