Javaのbyte配列とは要素がbyte型の配列のことだ。
このページではbyte配列についてまとめてご紹介していこう。
Javaのbyte配列とは?
byte配列とは、要素がbyte型の配列のことである。Javaのbyte型はいくつかあるプリミティブ型のひとつである。他のshort型やint型などとビットの数を比べるとbyte型はビットの数が8個で最も小さい。
例えば,6つの要素を持つbyte配列変数を定義すると次のようになる。最初にbyte配列変数を定義する。
byte[] array;
そして,配列の要素を入れるための入れ物を準備する。
array = new byte[6];
このふたつの行をひとつに書くことも出来る。
byte[] array = new byte[6];
これで,6つのbyte型の要素を持つ配列を作ることができた。
byte配列を使って実際にどんなことができるのかというと,例えば色々な型の情報をひとつのまとまったメモリに連続して書き込むときにbyte配列を使うことができる。byte配列であれば,書き込んだり読み込んだりするメモリの位置を自由に設定することができる。
byte配列を扱うためには,ライブラリのjava.nioパッケージにあるByteBufferクラスを使うと便利である。例えば,6つの要素を作って,最初に2バイトのshort型の数値を入れ,続く4バイトにint型の値を入れるとする。
この場合,byte配列を内部に持つByteBufferクラスのオブジェクトを作る。そして,putShortメソッドと,putIntメソッドに配列の位置を指定して書き込む。
1 2 3 |
ByteBuffer byteBuffer = ByteBuffer.wrap(array); byteBuffer.putShort(0, putShortValue); byteBuffer.putInt(2, putIntValue); |
読み出すときは,getShortメソッドと,getIntメソッドに配列の位置を指定して読み出す。
1 2 |
int getShortValue = byteBuffer.getShort(0); int getIntValue = byteBuffer.getInt(2); |
では,実際にサンプルプログラムで確かめてみよう。
サンプルプログラム
このプログラムは,前のセクションで説明したコードを実際に動かすように組み込んだものである。書き込んだデータがそのまま読み出されている。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.nio.ByteBuffer; public class ByteArray { public static void main(String[] args) { short putShortValue = 1212; //[1] int putIntValue = 1234567890; //[2] byte[] array;//[3] array = new byte[6];//[4] // byte[] array = new byte[6];//[5] ByteBuffer byteBuffer = ByteBuffer.wrap(array);//[6] byteBuffer.putShort(0, putShortValue);//[7] byteBuffer.putInt(2, putIntValue);//[8] int getShortValue = byteBuffer.getShort(0);//[9] int getIntValue = byteBuffer.getInt(2);//[10] System.out.println("[11] getShortValue = " + getShortValue); System.out.println("[12] getIntValue = " + getIntValue); } } |
実行結果
1 2 |
[11] getShortValue = 1212 [12] getIntValue = 1234567890 |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
- [1]-[5] short型とint型の変数と配列変数を準備する。
- [6]-[8] short型とint型の変数の値をbyte配列に書き込む。
- [9]-[12] byte配列に書き込んだ値を読み出して表示する。
まとめ
このページではbyte配列についてお伝えしてきた。参考にしていただければ幸いだ。