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