インターフェース StreamMessage
- すべてのスーパーインターフェース:
Message
public interface StreamMessage extends 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
- 関連事項:
Session.createStreamMessage(),BytesMessage,MapMessage,Message,ObjectMessage,TextMessage
フィールド概要
インターフェース jakarta.jms.Message から継承されたフィールド
DEFAULT_DELIVERY_DELAY, DEFAULT_DELIVERY_MODE, DEFAULT_PRIORITY, DEFAULT_TIME_TO_LIVE
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 booleanreadBoolean()ストリームメッセージからbooleanを読み取ります。bytereadByte()ストリームメッセージからbyte値を読み取ります。intreadBytes(byte[] value)ストリームメッセージから指定されたbyte[]オブジェクト(読み取りバッファー)にバイト配列フィールドを読み取ります。charreadChar()ストリームメッセージから Unicode 文字値を読み取ります。doublereadDouble()ストリームメッセージからdoubleを読み取ります。floatreadFloat()ストリームメッセージからfloatを読み取ります。intreadInt()ストリームメッセージから 32 ビット整数を読み取ります。longreadLong()ストリームメッセージから 64 ビット整数を読み取ります。ObjectSEreadObject()ストリームメッセージからオブジェクトを読み取ります。shortreadShort()ストリームメッセージから 16 ビット整数を読み取ります。StringSEreadString()ストリームメッセージから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 readBoolean() throws JMSExceptionストリームメッセージからbooleanを読み取ります。- 戻り値:
- 読み込まれた
boolean値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readByte
byte readByte() throws JMSExceptionストリームメッセージからbyte値を読み取ります。- 戻り値:
- 8 ビット
byteとしてのストリームメッセージの次のバイト - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readShort
short readShort() throws JMSExceptionストリームメッセージから 16 ビット整数を読み取ります。- 戻り値:
- ストリームメッセージからの 16 ビット整数
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readChar
char readChar() throws JMSExceptionストリームメッセージから Unicode 文字値を読み取ります。- 戻り値:
- ストリームメッセージの Unicode 文字
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合MessageNotReadableException- メッセージが書き込み専用モードの場合。
readInt
int readInt() throws JMSExceptionストリームメッセージから 32 ビット整数を読み取ります。- 戻り値:
intとして解釈されるストリームメッセージからの 32 ビット整数値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readLong
long readLong() throws JMSExceptionストリームメッセージから 64 ビット整数を読み取ります。- 戻り値:
longとして解釈されるストリームメッセージからの 64 ビット整数値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readFloat
float readFloat() throws JMSExceptionストリームメッセージからfloatを読み取ります。- 戻り値:
- ストリームメッセージからの
float値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readDouble
double readDouble() throws JMSExceptionストリームメッセージからdoubleを読み取ります。- 戻り値:
- ストリームメッセージからの
double値 - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readString
StringSE readString() throws JMSException
ストリームメッセージからStringを読み取ります。- 戻り値:
- ストリームメッセージからの Unicode 文字列
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。
readBytes
int readBytes(byte[] value) throws JMSExceptionストリームメッセージから指定されたbyte[]オブジェクト(読み取りバッファー)にバイト配列フィールドを読み取ります。フィールド値を読み取るには、読み取りバッファーの長さよりも短い値が返されるまで、
readBytesを連続して呼び出す必要があります。最後に読み取られたバイトに続くバッファ内のバイトの値は未定義です。readBytesがバッファーの長さに等しい値を返す場合、後続のreadBytes呼び出しを行う必要があります。読み取るバイトがこれ以上ない場合、この呼び出しは -1 を返します。バイト配列フィールドの値が null の場合、
readBytesは -1 を返します。バイト配列フィールドの値が空の場合、
readBytesは 0 を返します。byte[]フィールド値に対する最初のreadBytes呼び出しが行われると、次のフィールドを読み取ることが有効になる前に、フィールドの完全な値を読み取る必要があります。それが行われる前に次のフィールドを読み取ろうとすると、MessageFormatExceptionがスローされます。バイトフィールド値を新しい
byte[]オブジェクトに読み込むには、readObjectメソッドを使用します。- パラメーター:
value- データが読み込まれるバッファ- 戻り値:
- バッファに読み込まれた合計バイト数。バイトフィールドの終わりに達したためにデータがなくなった場合は -1
- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。- 関連事項:
readObject()
readObject
ObjectSE readObject() throws JMSException
ストリームメッセージからオブジェクトを読み取ります。このメソッドを使用して、同等の
writeObjectメソッド呼び出しまたは同等のプリミティブwritetypeメソッドでストリームに書き込まれた Java プログラミング言語のオブジェクト(「Java オブジェクト」)をオブジェクト化された形式で返すことができます。バイト値は
Byte[]ではなくbyte[]として返されることに注意してください。バイトフィールドの完全な値が読み取られる前に、
readObjectを呼び出してバイトフィールド値を新しいbyte[]オブジェクトに読み取ろうとすると、MessageFormatExceptionがスローされます。- 戻り値:
- オブジェクト化された形式のストリームメッセージからの Java オブジェクト (たとえば、オブジェクトが
intとして書き込まれた場合、Integerが返されます。) - 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException- メッセージストリームの予期しない終了に達した場合。MessageFormatException- この型変換が無効な場合。MessageNotReadableException- メッセージが書き込み専用モードの場合。- 関連事項:
readBytes(byte[] value)
writeBoolean
void writeBoolean(boolean value) throws JMSExceptionbooleanをストリームメッセージに書き込みます。値trueは、値(byte)1として書き込まれます。値falseは、値(byte)0として書き込まれます。- パラメーター:
value- 書き込まれるboolean値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeByte
void writeByte(byte value) throws JMSExceptionbyteをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるbyte値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeShort
void writeShort(short value) throws JMSExceptionshortをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるshort値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeChar
void writeChar(char value) throws JMSExceptioncharをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるchar値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeInt
void writeInt(int value) throws JMSExceptionintをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるint値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeLong
void writeLong(long value) throws JMSExceptionlongをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるlong値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeFloat
void writeFloat(float value) throws JMSExceptionfloatをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるfloat値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeDouble
void writeDouble(double value) throws JMSExceptiondoubleをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるdouble値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeString
void writeString(StringSE value) throws JMSException
Stringをストリームメッセージに書き込みます。- パラメーター:
value- 書き込まれるString値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeBytes
void writeBytes(byte[] value) throws JMSExceptionバイト配列フィールドをストリームメッセージに書き込みます。バイト配列
valueは、バイト配列フィールドとしてメッセージに書き込まれます。連続して書き込まれたバイト配列フィールドは、フィールドが読み取られるときに 2 つの別個のフィールドとして扱われます。- パラメーター:
value- 書き込まれるバイト配列値- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeBytes
void writeBytes(byte[] value, int offset, int length) throws JMSExceptionバイト配列の一部をバイト配列フィールドとしてストリームメッセージに書き込みます。バイト配列
valueの一部は、バイト配列フィールドとしてメッセージに書き込まれます。連続して書き込まれたバイト配列フィールドは、フィールドが読み取られるときに 2 つの別個のフィールドとして扱われます。- パラメーター:
value- 書き込まれるバイト配列値offset- バイト配列内の初期オフセットlength- 使用するバイト数- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
writeObject
void writeObject(ObjectSE value) throws JMSException
ストリームメッセージにオブジェクトを書き込みます。このメソッドは、オブジェクト化されたプリミティブオブジェクト型(
Integer、Double、Long...)、Stringオブジェクト、バイト配列に対してのみ機能します。- パラメーター:
value- 書き込まれる Java オブジェクト- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageFormatException- オブジェクトが無効な場合。MessageNotWriteableException- メッセージが読み取り専用モードの場合。
reset
void reset() throws JMSExceptionメッセージ本文を読み取り専用モードにし、ストリームを先頭に再配置します。- 例外:
JMSException- 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。MessageFormatException- メッセージの形式が無効な場合。