【发布时间】:2015-11-11 09:50:23
【问题描述】:
我需要通过 TCP/socket 连接到第三方系统并检索一些数据。 将发送的数据格式为固定长度格式和二进制。
请求示例:
short MessageID = 5;
int TransactionTrace = 1;
基本上,我必须向第三方系统发送 6 个字节。十六进制数据:000500000001
我尝试在 Java 中执行以下操作,但它不起作用。
- 创建一个包含两个变量和正确数据类型(messageID 和 transactionTrace)的类
- 将类序列化为字节数组
序列化返回太多字节。
有人可以帮忙吗?
谢谢。
Java 类:
public final class MsgHeader implements Serializable {
public short MessageID;
public int TransactionTrace;
}
序列化:
MsgHeader header = new MsgHeader();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = null;
try
{
out = new ObjectOutputStream(bos);
out.writeObject(header);
byte[] yourBytes = bos.toByteArray();
System.out.println("Hex Data : " + getHex(yourBytes));
}
【问题讨论】:
-
序列化不是这样工作的。如果您阅读过文档,您就会知道。
标签: java