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
, TextMessage
DEFAULT_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, setStringProperty
boolean readBoolean() throws JMSException
boolean
を読み取ります。boolean
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。byte readByte() throws JMSException
byte
値を読み取ります。byte
としてのストリームメッセージの次のバイト JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。short readShort() throws JMSException
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。char readChar() throws JMSException
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合 MessageNotReadableException
- メッセージが書き込み専用モードの場合。int readInt() throws JMSException
int
として解釈されるストリームメッセージからの 32 ビット整数値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。long readLong() throws JMSException
long
として解釈されるストリームメッセージからの 64 ビット整数値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。float readFloat() throws JMSException
float
を読み取ります。float
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。double readDouble() throws JMSException
double
を読み取ります。double
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。StringSE readString() throws JMSException
String
を読み取ります。JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの読み取りに失敗した場合。MessageEOFException
- メッセージストリームの予期しない終了に達した場合。MessageFormatException
- この型変換が無効な場合。MessageNotReadableException
- メッセージが書き込み専用モードの場合。int readBytes(byte[] value) throws JMSException
byte[]
オブジェクト(読み取りバッファー)にバイト配列フィールドを読み取ります。 フィールド値を読み取るには、読み取りバッファーの長さよりも短い値が返されるまで、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 JMSException
boolean
をストリームメッセージに書き込みます。値 true
は、値 (byte)1
として書き込まれます。値 false
は、値 (byte)0
として書き込まれます。value
- 書き込まれる boolean
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeByte(byte value) throws JMSException
byte
をストリームメッセージに書き込みます。value
- 書き込まれる byte
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeShort(short value) throws JMSException
short
をストリームメッセージに書き込みます。value
- 書き込まれる short
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeChar(char value) throws JMSException
char
をストリームメッセージに書き込みます。value
- 書き込まれる char
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeInt(int value) throws JMSException
int
をストリームメッセージに書き込みます。value
- 書き込まれる int
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeLong(long value) throws JMSException
long
をストリームメッセージに書き込みます。value
- 書き込まれる long
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeFloat(float value) throws JMSException
float
をストリームメッセージに書き込みます。value
- 書き込まれる float
値 JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。void writeDouble(double value) throws JMSException
double
をストリームメッセージに書き込みます。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 JMSException
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージのリセットに失敗した場合。MessageFormatException
- メッセージの形式が無効な場合。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.