7.4.1 BytesMessageインタフェース
BytesMessageインタフェースはバイトストリームを含むメッセージを送受信するために使用します。BytesMessageインタフェースはMessageインタフェースを継承しているため,Messageインタフェースの機能を持っています。
- 〈この項の構成〉
(1) ペイロードの設定と取得
BytesMessageインタフェースを使用することによってペイロードを設定および取得できます。このペイロードはバイトストリームです。JMSメッセージの各要素については,「2.5.1 JMSメッセージの構成」を参照してください。
(2) 形式
public interface BytesMessage extends Message { public boolean readBoolean() throws JMSException; public byte readByte() throws JMSException; public int readBytes(byte[] value) throws JMSException; public int readBytes(byte[] value, int length) throws JMSException; public char readChar() throws JMSException; public double readDouble() throws JMSException; public float readFloat() throws JMSException; public int readInt() throws JMSException; public long readLong() throws JMSException; public short readShort() throws JMSException; public int readUnsignedByte() throws JMSException; public int readUnsignedShort() throws JMSException; public java.lang.String readUTF() throws JMSException; public void reset() throws JMSException; public void writeBoolean(boolean value) throws JMSException; public void writeByte(byte value) throws JMSException; public void writeBytes(byte[] value) throws JMSException; public void writeBytes(byte[] value, int offset, int length) throws JMSException; public void writeChar(char value) throws JMSException; public void writeDouble(double value) throws JMSException; public void writeFloat(float value) throws JMSException; public void writeInt(int value) throws JMSException; public void writeLong(long value) throws JMSException; public void writeObject(java.lang.Object value) throws JMSException; public void writeShort(short value) throws JMSException; public void writeUTF(java.lang.String value) throws JMSException; }
(3) フィールド
ありません。
(4) メソッド
「(2) 形式」に記載した順序で各メソッドを説明します。
(a) readBooleanメソッド
public boolean readBoolean() throws JMSException
バイトストリームからboolean型の値を読み取ります。
-
引数
ありません。
-
戻り値
読み取られたbooleanの値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(b) readByteメソッド
public byte readByte() throws JMSException
バイトストリームから符号付き8ビット値を読み取ります。
-
引数
ありません。
-
戻り値
符号付き8ビットとみなされるバイトストリームの次のバイト。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(c) readBytesメソッド
public int readBytes(byte[] value) throws JMSException
バイトストリームからバイト配列を読み取ります。バイトストリームの長さより配列valueの長さが短い場合,配列valueの長さまでのバイトストリームを読み取ることができます。残りのバイトストリームも再度メソッドを発行することによって配列valueの長さまで読み取ることができます。バイトストリームの長さより配列valueの長さが長い場合,バイトストリームをすべて読み取ることができます。
このとき,読み取られる総バイト数を示す戻り値は,配列valueの長さよりも短くなり,バイトストリームから読み取るバイトが残っていないことを表します。バイトストリームからさらに読み取りを実行すると,-1を返します。
-
引数
引数名
説明
value
データの読み取り先のバッファ
-
戻り値
バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなった場合は-1です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(d) readBytesメソッド
public int readBytes(byte[] value, int length) throws JMSException
バイトストリームの一部を読み取ります。
-
引数
引数名
説明
value
データの読み取り先のバッファ
length
読み取るバイト数(value.length以下)
-
戻り値
バッファに読み取られるバイトの総数。ストリームの終端に達してデータがなくなった場合は-1です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(e) readCharメソッド
public char readChar() throws JMSException
バイトストリームからUnicode文字値を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の2バイトで表されるUnicode文字。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(f) readDoubleメソッド
public double readDouble() throws JMSException
バイトストリームからdouble値を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の8バイトをdoubleと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(g) readFloatメソッド
public float readFloat() throws JMSException
バイトストリームからfloat値を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の4バイトをfloatと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(h) readIntメソッド
public int readInt() throws JMSException
バイトストリームから符号付き32ビット整数を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の4バイトをintと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(i) readLongメソッド
public long readLong() throws JMSException
バイトストリームから符号付き64ビット整数を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の8バイトをlongと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(j) readShortメソッド
public short readShort() throws JMSException
バイトストリームから符号付き16ビット数を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の2バイトを符号付き16ビットと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(k) readUnsignedByteメソッド
public int readUnsignedByte() throws JMSException
バイトストリームから符号なし8ビット数を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次のバイトを符号なし8ビットと解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(l) readUnsignedShortメソッド
public int readUnsignedShort() throws JMSException
バイトストリームから符号なし16ビット数を読み取ります。
-
引数
ありません。
-
戻り値
バイトストリームの次の2バイトを符号なし16ビット整数と解釈した値です。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(m) readUTFメソッド
public java.lang.String readUTF() throws JMSException
修正UTF-8形式を使用してエンコードされた文字列をバイトストリームから読み取ります。一度の発行で読み取られる文字列は65535バイトまでです。
-
引数
ありません。
-
戻り値
バイトストリームから読み取られたUnicode文字列。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの読み取りに失敗しました。
MessageEOFException
バイトストリームの予期しない終端に達しました。
MessageNotReadableException
書き込み専用モードのペイロードから情報を読み取ろうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(n) resetメソッド
public void reset() throws JMSException
ペイロードを書き込み専用モードから読み取り専用モードに移行してから,バイトストリームを先頭に再配置します。
-
引数
ありません。
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージのリセットに失敗しました。
MessageFormatException
メッセージ形式不正が原因でメッセージのリセットに失敗しました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(o) writeBooleanメソッド
public void writeBoolean(boolean value) throws JMSException
booleanをバイトストリームに1バイト値として書き込みます。
-
引数
引数名
説明
value
書き込まれるboolean値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(p) writeByteメソッド
public void writeByte(byte value) throws JMSException
byteをバイトストリームに1バイト値として書き込みます。
-
引数
引数名
説明
value
書き込まれるbyte値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(q) writeBytesメソッド
public void writeBytes(byte[] value) throws JMSException
バイト配列をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるバイト配列
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(r) writeBytesメソッド
public void writeBytes(byte[] value, int offset, int length) throws JMSException
バイト配列の一部をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるバイト配列値
offset
バイト配列内の初期オフセット
length
書き込まれるバイト数
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(s) writeCharメソッド
public void writeChar(char value) throws JMSException
上位バイトを先頭とする2バイト値として,char型引数をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるchar値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(t) writeDoubleメソッド
public void writeDouble(double value) throws JMSException
Double.doubleToLongBits()メソッドを使用してdouble型引数をlongに変換し,上位バイトを先頭とする8バイトとして,long値をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるdouble値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(u) writeFloatメソッド
public void writeFloat(float value) throws JMSException
Float.floatToIntBits()メソッドを使用してfloat型引数をintに変換し,上位バイトを先頭とする4バイトとして,int値をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるfloat値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(v) writeIntメソッド
public void writeInt(int value) throws JMSException
上位バイトを先頭とする4バイト値として,int型引数をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるint値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(w) writeLongメソッド
public void writeLong(long value) throws JMSException
上位バイトを先頭とする8バイト値として,long型引数をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるlong値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(x) writeObjectメソッド
public void writeObject(java.lang.Object value) throws JMSException
オブジェクトをバイトストリームに書き込みます。引数に設定できる型はオブジェクト化されたプリミティブオブジェクト型(Integer,DoubleおよびLongなど),Stringオブジェクトおよびバイト配列だけです。
-
引数
引数名
説明
value
書き込まれるJavaプログラミング言語のオブジェクト(Javaオブジェクト)
-
戻り値
ありません。
-
例外
例外クラス
説明
java.lang.NullPointerException
引数の値がnullなので,ペイロードの書き込みに失敗しました。
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageFormatException
引数の型が無効なためペイロードの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(y) writeShortメソッド
public void writeShort(short value) throws JMSException
上位バイトを先頭とする2バイト値として,short型引数をバイトストリームに書き込みます。
-
引数
引数名
説明
value
書き込まれるshort値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。
(z) writeUTFメソッド
public void writeUTF(java.lang.String value) throws JMSException
マシンに依存しないUTF-8エンコーディング形式を使用して,文字列をバイトストリームに書き込みます。一度の発行で書き込まれる文字列は65535バイトまでです。
-
引数
引数名
説明
value
書き込まれるString型の値
-
戻り値
ありません。
-
例外
例外クラス
説明
JMSException
内部エラーのためにJMSプロバイダがメッセージの書き込みに失敗しました。
MessageNotWriteableException
読み取り専用モードのペイロードに情報を書き込もうとしました。
例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。