将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,这总是很危险的。您应该使用显式字符集。要么是为消息类型指定的已知值,要么是作为消息属性包括的字符集。