インターフェース StreamMessage
- すべてのスーパーインターフェース:
Message
StreamMessage オブジェクトは、Java プログラミング言語でプリミティブ型のストリームを送信するために使用されます。記入され、順番に読み取られます。Message インターフェースから継承し、ストリームメッセージ本文を追加します。その方法は、主に java.io.DataInputStream および java.io.DataOutputStream に見られる方法に基づいています。 プリミティブ型は、各型のメソッドを使用して明示的に読み書きできます。また、オブジェクトとして一般的に読み書きすることもできます。たとえば、StreamMessage.writeInt(6) の呼び出しは StreamMessage.writeObject(new Integer(6)) と同等です。明示的なフォームは静的プログラミングに便利であり、コンパイル時に型が不明な場合はオブジェクトフォームが必要であるため、両方のフォームが提供されます。
メッセージが最初に作成されたとき、および clearBody が呼び出されたとき、メッセージの本文は書き込み専用モードになっています。reset への最初の呼び出しが行われた後、メッセージ本文は読み取り専用モードになります。メッセージが送信された後、メッセージを送信したクライアントは、送信されたメッセージに影響を与えることなく、メッセージを保持および変更できます。同じメッセージオブジェクトを複数回送信できます。メッセージが受信されると、プロバイダーは reset を呼び出して、メッセージ本文がクライアントに対して読み取り専用モードになるようにしました。
clearBody が読み取り専用モードのメッセージで呼び出された場合、メッセージ本文はクリアされ、メッセージ本文は書き込み専用モードになります。
クライアントが書き込み専用モードでメッセージを読み取ろうとすると、MessageNotReadableException がスローされます。
クライアントが読み取り専用モードでメッセージを書き込もうとすると、MessageNotWriteableException がスローされます。
StreamMessage オブジェクトは、次の変換テーブルをサポートしています。マークされたケースはサポートされている必要があります。マークされていないケースは JMSException をスローする必要があります。プリミティブの valueOf() メソッドがプリミティブの有効な String 表現として受け入れない場合、String -to-primitive 変換はランタイム例外をスローする可能性があります。
行型として書き込まれた値は、列型として読み取ることができます。
| | boolean byte short char int long float double String byte[] |---------------------------------------------------------------------- |boolean | X X |byte | X X X X X |short | X X X X |char | X X |int | X X X |long | X X |float | X X X |double | X X |String | X X X X X X X X |byte[] | X |----------------------------------------------------------------------
null 値をプリミティブ型として読み取ろうとすると、null 値を指定して、プリミティブの対応する valueOf(String) 変換メソッドを呼び出すことになります。char は String 変換をサポートしていないため、char として null 値を読み取ろうとすると、NullPointerException がスローされます。
- 導入:
- JMS 1.0
- バージョン:
- Jakarta Messaging 2.0
- 関連事項:
フィールド概要
インターフェース jakarta.jms.Message から継承されたフィールド
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE方法の概要
修飾子と型メソッド説明booleanストリームメッセージからbooleanを読み取ります。bytereadByte()ストリームメッセージからbyte値を読み取ります。intreadBytes(byte[] value) ストリームメッセージから指定されたbyte[]オブジェクト(読み取りバッファー)にバイト配列フィールドを読み取ります。charreadChar()ストリームメッセージから Unicode 文字値を読み取ります。doubleストリームメッセージからdoubleを読み取ります。floatストリームメッセージからfloatを読み取ります。intreadInt()ストリームメッセージから 32 ビット整数を読み取ります。longreadLong()ストリームメッセージから 64 ビット整数を読み取ります。ストリームメッセージからオブジェクトを読み取ります。shortストリームメッセージから 16 ビット整数を読み取ります。ストリームメッセージからStringを読み取ります。voidreset()メッセージ本文を読み取り専用モードにし、ストリームを先頭に再配置します。voidwriteBoolean(boolean value) booleanをストリームメッセージに書き込みます。voidwriteByte(byte value) byteをストリームメッセージに書き込みます。voidwriteBytes(byte[] value) バイト配列フィールドをストリームメッセージに書き込みます。voidwriteBytes(byte[] value, int offset, int length) バイト配列の一部をバイト配列フィールドとしてストリームメッセージに書き込みます。voidwriteChar(char value) charをストリームメッセージに書き込みます。voidwriteDouble(double value) doubleをストリームメッセージに書き込みます。voidwriteFloat(float value) floatをストリームメッセージに書き込みます。voidwriteInt(int value) intをストリームメッセージに書き込みます。voidwriteLong(long value) longをストリームメッセージに書き込みます。voidwriteObject(ObjectSE value) ストリームメッセージにオブジェクトを書き込みます。voidwriteShort(short value) shortをストリームメッセージに書き込みます。voidwriteString(StringSE value) Stringをストリームメッセージに書き込みます。インターフェース jakarta.jms.Message から継承されたメソッド
acknowledge, clearBody, clearProperties, getBody, getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getJMSCorrelationID, getJMSCorrelationIDAsBytes, getJMSDeliveryMode, getJMSDeliveryTime, getJMSDestination, getJMSExpiration, getJMSMessageID, getJMSPriority, getJMSRedelivered, getJMSReplyTo, getJMSTimestamp, getJMSType, getLongProperty, getObjectProperty, getPropertyNames, getShortProperty, getStringProperty, isBodyAssignableTo, propertyExists, setBooleanProperty, setByteProperty, setDoubleProperty, setFloatProperty, setIntProperty, setJMSCorrelationID, setJMSCorrelationIDAsBytes, setJMSDeliveryMode, setJMSDeliveryTime, setJMSDestination, setJMSExpiration, setJMSMessageID, setJMSPriority, setJMSRedelivered, setJMSReplyTo, setJMSTimestamp, setJMSType, setLongProperty, setObjectProperty, setShortProperty, setStringProperty
方法の詳細
readBoolean
ストリームメッセージからbooleanを読み取ります。- 戻り値:
- 読み込まれた
boolean値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readByte
ストリームメッセージからbyte値を読み取ります。- 戻り値:
- 8 ビット
byteとしてのストリームメッセージの次のバイト - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readShort
ストリームメッセージから 16 ビット整数を読み取ります。- 戻り値:
- ストリームメッセージからの 16 ビット整数
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readChar
ストリームメッセージから Unicode 文字値を読み取ります。- 戻り値:
- ストリームメッセージの Unicode 文字
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合MessageNotReadableException- メッセージが書き込み専用モードの場合。
readInt
ストリームメッセージから 32 ビット整数を読み取ります。- 戻り値:
intとして解釈されるストリームメッセージからの 32 ビット整数値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readLong
ストリームメッセージから 64 ビット整数を読み取ります。- 戻り値:
longとして解釈されるストリームメッセージからの 64 ビット整数値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readFloat
ストリームメッセージからfloatを読み取ります。- 戻り値:
- ストリームメッセージからの
float値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readDouble
ストリームメッセージからdoubleを読み取ります。- 戻り値:
- ストリームメッセージからの
double値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readString
ストリームメッセージからStringを読み取ります。- 戻り値:
- ストリームメッセージからの Unicode 文字列
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readBytes
ストリームメッセージから指定されたbyte[]オブジェクト(読み取りバッファー)にバイト配列フィールドを読み取ります。フィールド値を読み取るには、読み取りバッファーの長さよりも短い値が返されるまで、
readBytesを連続して呼び出す必要があります。最後に読み取られたバイトに続くバッファ内のバイトの値は未定義です。readBytesがバッファーの長さに等しい値を返す場合、後続のreadBytes呼び出しを行う必要があります。読み取るバイトがこれ以上ない場合、この呼び出しは -1 を返します。バイト配列フィールドの値が null の場合、
readBytesは -1 を返します。バイト配列フィールドの値が空の場合、
readBytesは 0 を返します。byte[]フィールド値に対する最初のreadBytes呼び出しが行われると、次のフィールドを読み取ることが有効になる前に、フィールドの完全な値を読み取る必要があります。それが行われる前に次のフィールドを読み取ろうとすると、MessageFormatExceptionがスローされます。バイトフィールド値を新しい
byte[]オブジェクトに読み込むには、readObjectメソッドを使用します。- パラメーター:
value- データが読み込まれるバッファ- 戻り値:
- バッファに読み込まれた合計バイト数。バイトフィールドの終わりに達したためにデータがなくなった場合は -1
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。- 関連事項:
readObject
ストリームメッセージからオブジェクトを読み取ります。このメソッドを使用して、同等の
writeObjectメソッド呼び出しまたは同等のプリミティブwritetypeメソッドでストリームに書き込まれた Java プログラミング言語のオブジェクト(「Java オブジェクト」)をオブジェクト化された形式で返すことができます。バイト値は
Byte[]ではなくbyte[]として返されることに注意してください。バイトフィールドの完全な値が読み取られる前に、
readObjectを呼び出してバイトフィールド値を新しいbyte[]オブジェクトに読み取ろうとすると、MessageFormatExceptionがスローされます。- 戻り値:
- オブジェクト化された形式のストリームメッセージからの Java オブジェクト (たとえば、オブジェクトが
intとして書き込まれた場合、Integerが返されます。) - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。- 関連事項:
writeBoolean
booleanをストリームメッセージに書き込みます。値trueは、値(byte)1として書き込まれます。値falseは、値(byte)0として書き込まれます。- パラメーター:
value- 書き込まれるboolean値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeByte
byteをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるbyte値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeShort
shortをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるshort値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeChar
charをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるchar値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeInt
intをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるint値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeLong
longをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるlong値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeFloat
floatをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるfloat値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeDouble
doubleをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるdouble値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeString
Stringをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるString値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeBytes
バイト配列フィールドをストリームメッセージに書き込みます。バイト配列
valueは、バイト配列フィールドとしてメッセージに書き込まれます。連続して書き込まれたバイト配列フィールドは、フィールドが読み取られるときに 2 つの別個のフィールドとして扱われます。- パラメーター:
value- 書き込まれるバイト配列値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeBytes
バイト配列の一部をバイト配列フィールドとしてストリームメッセージに書き込みます。バイト配列
valueの一部は、バイト配列フィールドとしてメッセージに書き込まれます。連続して書き込まれたバイト配列フィールドは、フィールドが読み取られるときに 2 つの別個のフィールドとして扱われます。- パラメーター:
value- 書き込まれるバイト配列値offset- バイト配列内の初期オフセットlength- 使用するバイト数- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeObject
ストリームメッセージにオブジェクトを書き込みます。このメソッドは、オブジェクト化されたプリミティブオブジェクト型(
Integer、Double、Long...)、Stringオブジェクト、バイト配列に対してのみ機能します。- パラメーター:
value- 書き込まれる Java オブジェクト- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageFormatException- オブジェクトが無効な場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
reset
メッセージ本文を読み取り専用モードにし、ストリームを先頭に再配置します。- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。MessageFormatException- メッセージの形式が無効な場合。