バイナリデータの読み書き

データをファイルに書き出したり、読み込んだりする時に、 エディッタなどでそのまま読めるテキスト形式ではなく、 計算機内部で数値データを扱う時に使われる2進数表現のまま ファイルに書き込み、読み込む事が出来る。 こうすると、例えば、 1.23456 という数字を、float 型で保存する場合、 "1.23456" と 7文字 (= 7バイト)必要であったのが、float 型変数のバイト数 (PC では 4バイト)ですむ。更に、読み書きの際にも文字列と内部表現との変換 作業が不要になり、計算機の処理が少なくなり、速度の向上が期待できる。 逆にデメリットとしては、計算機間でのバイトオーダーの違いやバイト数の違い あるいは、内部表現の形式の違いなどで読めなくなること、テキストデータであれば UNIX 上での多くのテキスト処理ツール (awk, sed, head, tail, ...) が使えるが それが使えなくなることが挙げられる。

ここでは、非常に簡単な例として、整数でデータの大きさを書いた後にそのサイズの 浮動小数点データを書き込むプログラムと、それを読み出すプログラムを書いてみる。 読み書きは同じ計算機でおこなうものと仮定しておく、

上へ 作者のページへ