PHASE2 LOG

主にIT関連・ゲームのログ

Javaのお勉強~バイナリファイルの読み書き~

   

今回はバイナリファイルの読み書きについてです。

前回のテキストファイルと読み書きの手順は似ています。

 

バイナリファイルの読み込み

 

1.ファイルを開く

FileInputStreamというストリームクラスを利用してファイルを開きます。

FileInputStreamオブジェクトの生成は以下のように記述します。

 

FileInputStream オブジェクト名 = new FileInputStream("ファイル名");

 

2.データを読み込む

read()メソッドを使用してデータを読み込むことができます。

read()メソッドは読み込んだ文字をint型の整数で返却されるのはテキストファイルの読み書きでも

同様でしたね。

 

3.ファイルを閉じる

ファイルを閉じる時はclose()メソッドを使用します。

 

以上が、ファイル読み込みの流れとなります。

 

バイナリファイルの書き出し

 

バイナリファイルへ書き出すときの手順を見てみましょう。

 

1.ファイルを開く

バイナリファイルを書き出すにはFileOutputStreamというストリームクラスを使用します。

FileOutputStream オブジェクト名 = new FileOutputStream("ファイル名");

 

2.データを書き出す

write()メソッドを使用してデータを書き出すことができます。

write()メソッドでは引数として与えたデータが書き出されます。

 

引数にはint型かbyte型の値を指定します。

 

3.ファイルを閉じる

close()メソッドでファイルを閉じます。

 

以上が、ファイル書き出しの流れとなります。

 

文字ストリームの変換

 

1.読み込むときに文字へ変換

InputStreamReaderクラスを利用すると、読み込んだバイナリデータを文字へ変換できます。

引数にはバイナリデータを読み込むオブジェクトを受け取ります。

 

2.書き出すときに文字へ変換

OutputStreamWriterクラスを利用すると、書き出すバイナリデータを文字へ変換できます。

引数にはバイナリデータを書き出すオブジェクトを受け取ります。

 

以上を踏まえてバイナリデータの読み書きを行う実際の例を作ってみました。

//ストリームのためのクラスをインポート
import java.io.*;

public class BinaryFile {
	public static void main(String[] args){
		try {
			//バイナリファイルを書き出すオブジェクト
			FileOutputStream a = new FileOutputStream("binary.dat");
			//バイナリファイルを読み込むオブジェクト
			FileInputStream b = new FileInputStream("binary.dat");
			
			//読み込んだファイルを文字へ変換
			InputStreamReader c = new InputStreamReader(b);
			
			//1~10まで書き出す
			for(byte i = 1; i <= 10; i++) {
				a.write(i);
			}
			
			int ch;
			//-1になるまで文字の出力を繰り返す
			while((ch = c.read()) != -1) {
				System.out.print(ch + " ");
			}
			
			//ファイルを閉じる
			a.close();
			b.close();
		
		//ファイルが読み込めなかった場合の例外処理
		} catch (IOException e){
			System.out.println("ファイルを読み込めませんでした。");
		}
		//finally省略
	}
}

 

for文の時点では、FileOutputStreamクラスのWrite()メソッドを利用してバイナリデータを

書き出しています。

 

while文の時点ではInputStreamReaderクラスを利用し、for文で書き出されたバイナリデータを読み込んで

文字へ変換して出力しています。

 

数字じゃなくてちゃんと文字(あいうえおとか…)に変換できる手順がわかり次第、

記事を更新したいと思います!

 

人気ブログランキング

 -