类 JMSStreamMessage
- java.lang.Object
- com.ibm.jms.JMSMessage
- com.ibm.jms.JMSStreamMessage
- 所有已实现的接口:
- JmsMessage, java.io.Serializable, javax.jms.Message, javax.jms.StreamMessage
公用类 JMSStreamMessage 扩展 JMSMessage 实现 javax.jms.StreamMessage
StreamMessage 用于发送 Java 原语流。 会按顺序对其进行填充和读取。 它继承自
JMSMessage并添加流消息体。 其方法主要基于在java.io.DataInputStream和java.io.DataOutputStream中找到的方法。可以使用每种类型的方法来显式读取或写入基本类型。 它们也可以一般地作为对象来读取或写入。 例如,对
StreamMessage.writeInt(6)的调用等同于StreamMessage.writeObject(new Integer(6))。 提供这两种格式是因为显式格式便于静态编程,并且在编译时不知道类型时需要对象格式。在首次创建信息和调用 clearBody() 时,信息正文处于只写模式。 第一次调用 reset () 方法后,消息体处于只读方式。 发送消息后,提供程序始终调用 reset () 方法来读取其内容。 同样,当接收到消息时,提供程序会调用 reset () ,以便消息体处于客户机的只读方式。
如果在只读模式下调用clearBody(),则会清除邮件正文,邮件正文处于只写模式。
如果客户机尝试以仅写方式读取消息,那么将抛出
MessageNotReadableException。如果客户机尝试以只读方式写入消息,那么将抛出
MessageNotWriteableException。流消息支持以下转换表。 支持标记的案例,未标记的案例将抛出 JMSException。 如果基元 valueOf() 方法不接受字符串作为基元的有效字符串表示,则字符串到基元的转换会产生运行时异常。
可以将作为行类型写入的值作为列类型读取。
布尔值 字节 短整型 字符型 int long 浮点值 双精度值 字符串 byte[] 布尔值 X X 字节 X X X X X 短整型 X X X X 字符型 X X int X X X long X X 浮点值 X X X 双精度值 X X 字符串 X X X X X X X X byte[] X 尝试将空值作为 Java 基元类型读取时,会被视为使用空值调用基元的相应 valueOf(String) 转换方法。 由于 char 不支持字符串转换,因此尝试将空值作为 char 读取时会抛出 NullPointerException 异常。
要创建流消息,请调用
Session.createStreamMessage()。 请勿调用缺省构造函数。- 另请参阅:
- 序列化表单
-
字段摘要
字段 修饰符和类型 字段和描述 static java.lang.Stringsccsid从 CMVC 抽取文件时展开的 SCCSID
-
构造函数摘要
构造函数 构造函数和描述 JMSStreamMessage()不推荐使用。
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法和描述 booleanreadBoolean()从流消息中读取布尔值。bytereadByte()从流消息中读取字节值。intreadBytes(byte[] value)将字节数组字段从流消息中读取到指定的 byte [] 对象 (读缓冲区)。charreadChar()从流消息中读取 Unicode 字符值。doublereadDouble()从流消息中读取双精度值。floatreadFloat()从流消息中读取浮点数。intreadInt()从流消息中读取 32 位整数。longreadLong()从流消息中读取 64 位整数。java.lang.ObjectreadObject()从流消息中读取 Java 对象。shortreadShort()从流消息中读取 16 位整数。java.lang.StringreadString()从流消息中读取字符串。voidreset()将消息置于只读方式,并将流重新定位到开头。voidwriteBoolean(boolean value)将布尔值写入流消息。voidwriteByte(byte value)将字节写入流消息。voidwriteBytes(byte[] value)将字节数组写入流消息。voidwriteBytes(byte[] value, int offset, int length)将字节数组的一部分写入流消息。voidwriteChar(char value)将一个字符写入流消息。voidwriteDouble(double value)将双精度值写入流消息。voidwriteFloat(float value)将浮点数写入流消息。voidwriteInt(int value)将 int 写入流消息。voidwriteLong(long value)将长整型写入流消息。voidwriteObject(java.lang.Object value)将 Java 对象写入流消息。voidwriteShort(short value)将简短消息写入流消息。voidwriteString(java.lang.String value)将字符串写入流消息。-
从类 com.ibm.jms继承的方法。JMSMessage
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, toString, updateFromMessage
-
从接口 javax.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
-
从 interface com.ibm.msg.client.jms.JmsMessage 继承的方法
getDelegate
-
-
-
字段详细信息
斯卡西德
公共静态最终 java.lang.String sccsid
从 CMVC 抽取文件时展开的 SCCSID- 另请参阅:
- 常量字段值
-
构造函数详细信息
JMSStreamMessage
public JMSStreamMessage()
不推荐使用。要创建流消息,请调用
Session.createStreamMessage()。请勿调用此缺省构造函数。
-
方法详细信息
readBoolean
public boolean readBoolean() 抛出 javax.jms.JMSException从流消息中读取布尔值。- 指定者:
readBoolean在接口中javax.jms.StreamMessage- 返回:
- 读取的布尔值
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readByte
public byte readByte() 抛出 javax.jms.JMSException从流消息中读取字节值。- 指定者:
readByte在接口中javax.jms.StreamMessage- 返回:
- 流消息中的下一个字节作为 8 位字节
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readBytes
public int readBytes(byte[] value) 抛出 javax.jms.JMSException将字节数组字段从流消息中读取到指定的 byte [] 对象 (读缓冲区)。要读取字段值,应连续调用 readBytes() 直到返回的值小于读取缓冲区的长度。 缓冲区中上次字节读取后的字节值未定义。
如果 readBytes() 返回的值等于缓冲区的长度,则必须执行后续的 readBytes() 调用。 如果没有字节可读取,该调用将返回 -1 。
如果字节数组字段值为空,readBytes() 返回 -1 。
如果字节数组字段值为空,readBytes() 返回 0。
在对 byte[] 字段值进行第一次 readBytes() 调用后,必须先读取字段的全部值,才能读取下一个字段。 在读取下一个字段之前,如果尝试读取下一个字段,将引发 MessageFormatException 异常。
- 指定者:
readBytes在接口中javax.jms.StreamMessage- 参数:
value-从中读取数据的缓冲区- 返回:
- 读入缓冲区的总字节数,或 -1 (如果已到达字节字段的末尾,没有更多数据)
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readChar
public char readChar() 抛出 javax.jms.JMSException从流消息中读取 Unicode 字符值。- 指定者:
readChar在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的 Unicode 字符
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readDouble
public double readDouble() 抛出 javax.jms.JMSException从流消息中读取双精度值。- 指定者:
readDouble在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的双精度值
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readFloat
public float readFloat() 抛出 javax.jms.JMSException从流消息中读取浮点数。- 指定者:
readFloat在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的浮点值
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readInt
公共 int readInt() 抛出 javax.jms.JMSException从流消息中读取 32 位整数。- 指定者:
readInt在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的 32 位整数值,解释为
int - 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readLong
public long readLong() 抛出 javax.jms.JMSException从流消息中读取 64 位整数。- 指定者:
readLong在接口中javax.jms.StreamMessage- 返回:
- 流消息中的 64 位整数值,解释为
long - 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readObject
public java.lang.Object readObject() 抛出 javax.jms.JMSException从流消息中读取 Java 对象。该方法可用于返回已通过 writeObject() 方法调用写入流的对象,或其等效的原始写入方法
() 方法。 它将返回其中一个基本对象包装器类 (Integer , Double , Long ...) , 字符串或字节数组。 - 指定者:
readObject在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的 Java 对象
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageNotReadableException-如果消息处于仅写方式
readShort
public short readShort() 抛出 javax.jms.JMSException从流消息中读取 16 位整数。- 指定者:
readShort在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的 16 位整数
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
readString
public java.lang.String readString() 抛出 javax.jms.JMSException从流消息中读取字符串。- 指定者:
readString在接口中javax.jms.StreamMessage- 返回:
- 来自流消息的 Unicode 字符串
- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法读取消息javax.jms.MessageEOFException-如果消息流结束javax.jms.MessageFormatException-如果此类型转换无效javax.jms.MessageNotReadableException-如果消息处于仅写方式
重置
public void reset () 抛出 javax.jms.JMSException将消息置于只读方式,并将流重新定位到开头。- 指定者:
reset在接口中javax.jms.StreamMessage- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而未能重置消息javax.jms.MessageFormatException-如果消息的格式无效
writeBoolean
public void writeBoolean(boolean value) 抛出 javax.jms.JMSException将布尔值写入流消息。 值true写为值(byte)1; 值false写为值(byte)0。- 指定者:
writeBoolean在接口中javax.jms.StreamMessage- 参数:
value-要写入的布尔值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将布尔值写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeByte
public void writeByte(byte value) 抛出 javax.jms.JMSException将字节写入流消息。- 指定者:
writeByte在接口中javax.jms.StreamMessage- 参数:
value-要写入的字节值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将字节写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeBytes
public void writeBytes(byte[] value) 抛出 javax.jms.JMSException将字节数组写入流消息。- 指定者:
writeBytes在接口中javax.jms.StreamMessage- 参数:
value-要写入的字节数组- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而未能将字节数组写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeBytes
public void writeBytes(byte[] value、 int offset, int 长度) 抛出 javax.jms.JMSException将字节数组的一部分写入流消息。- 指定者:
writeBytes在接口中javax.jms.StreamMessage- 参数:
value-要写入的字节数组值offset-字节数组中的初始偏移量length-要使用的字节数- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将字节数组部分写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeChar
public void writeChar(char value) 抛出 javax.jms.JMSException将一个字符写入流消息。- 指定者:
writeChar在接口中javax.jms.StreamMessage- 参数:
value-要写入的字符值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将 char 写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeDouble
public void writeDouble(double value) 抛出 javax.jms.JMSException将双精度值写入流消息。- 指定者:
writeDouble在接口中javax.jms.StreamMessage- 参数:
value-要写入的双精度值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将双精度值写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeFloat
public void writeFloat(float value) 抛出 javax.jms.JMSException将浮点数写入流消息。- 指定者:
writeFloat在接口中javax.jms.StreamMessage- 参数:
value-要写入的浮点值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将浮点写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeInt
public void writeInt(int value) 抛出 javax.jms.JMSException将 int 写入流消息。- 指定者:
writeInt在接口中javax.jms.StreamMessage- 参数:
value-要写入的整数- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将 int 写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeLong
public void writeLong(long value) 抛出 javax.jms.JMSException将长整型写入流消息。- 指定者:
writeLong在接口中javax.jms.StreamMessage- 参数:
value-要写入的长整型- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将长整型写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeObject
public void writeObject(java.lang.Object value) 抛出 javax.jms.JMSException将 Java 对象写入流消息。此方法仅适用于基本对象包装器类 (Integer , Double , Long ...) , 字符串和字节数组。
- 指定者:
writeObject在接口中javax.jms.StreamMessage- 参数:
value-要写入的 Java 对象- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将对象写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式。javax.jms.MessageFormatException-如果对象无效
writeShort
public void writeShort(short value) 抛出 javax.jms.JMSException将简短消息写入流消息。- 指定者:
writeShort在接口中javax.jms.StreamMessage- 参数:
value-要写入的短文- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将短信息写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
writeString
public void writeString(java.lang.String value) 抛出 javax.jms.JMSException将字符串写入流消息。- 指定者:
writeString在接口中javax.jms.StreamMessage- 参数:
value-要写入的字符串值- 抛出:
javax.jms.JMSException-如果 JMS 由于内部 JMS 错误而无法将字符串写入消息javax.jms.MessageNotWriteableException-如果消息处于只读方式
-