インターフェース 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
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 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
をストリームメッセージに書き込みます。インターフェース 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 JMSException
boolean
をストリームメッセージに書き込みます。値true
は、値(byte)1
として書き込まれます。値false
は、値(byte)0
として書き込まれます。- パラメーター:
value
- 書き込まれるboolean
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeByte
void writeByte(byte value) throws JMSException
byte
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるbyte
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeShort
void writeShort(short value) throws JMSException
short
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるshort
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeChar
void writeChar(char value) throws JMSException
char
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるchar
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeInt
void writeInt(int value) throws JMSException
int
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるint
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeLong
void writeLong(long value) throws JMSException
long
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるlong
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeFloat
void writeFloat(float value) throws JMSException
float
をストリームメッセージに書き込みます。- パラメーター:
value
- 書き込まれるfloat
値- 例外:
JMSException
- 内部エラーのために Jakarta Messaging プロバイダーがメッセージの書き込みに失敗した場合。MessageNotWriteableException
- メッセージが読み取り専用モードの場合。
writeDouble
void writeDouble(double value) throws JMSException
double
をストリームメッセージに書き込みます。- パラメーター:
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
- メッセージの形式が無効な場合。