ByteMessage转换为String的最佳方法是什么?我有以下代码,我们还有更干净的方法吗?

BytesMessage byteMessage; // set byteMessage

byte[] byteArr = new byte[(int)byteMessage.getBodyLength()];

for (int i = 0; i < (int) byteMessage.getBodyLength(); i++) {
    byteArr[i] = byteMessage.readByte();
}
String msg = new String(byteArr);

最佳答案

好吧,首先调用readBytes(byte [])可能会更高效。

其次,您正在使用平台字符编码将字节转换为String,这总是很危险的。您应该使用显式字符集。要么是为消息类型指定的已知值,要么是作为消息属性包括的字符集。

10-06 07:01