使用Integer.reverseBytes()和Short.reverseBytes()方法就可以了。请注意是reverseBytes()不是reverse()!
ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
DataOutputStream bytesDataOut = new DataOutputStream(bytesOut);
bytesDataOut.writeInt(0x89abcdef);
bytesDataOut.writeInt(Integer.reverseBytes(0x89abcdef));
bytesDataOut.writeShort(0xabcd);
bytesDataOut.writeShort(Short.reverseBytes((short)0xabcd));
bytesDataOut.close();
byte[] data = bytesOut.toByteArray();
for (int i = 0; i < data.length; i++) {
System.out.printf("%02x ", data[i]);
}
System.out.println();
程序运行结果:
89 ab cd ef
ef cd ab 89
ab cd
cd ab