java - Java 中基于字节的(反)序列化?

标签 java serialization

我想尝试滥用 Java 类作为结构,为此我想知道是否可以将字节数组序列化为类以及其他方式。

所以如果我有这样的类(class):

public class Handshake
{
    byte command;
    byte error;
    short size;
    int major;
    int ts;
    char[] secret; // aligned size = 32 bytes
}

是否有一种简单的方法(无需手动读取字节并填写需要 3 倍代码量的类)将一组字节反序列化到此类中?我知道 Java 没有结构,但我想知道是否可以简化序列化过程,以便它自动执行。 这些字节不是来自 Java 的序列化程序,它们只是从 C 结构派生的对齐字节。

最佳答案

The bytes are not from Java's serializer, they are just aligned bytes derived from C structs.

坏主意。一旦有人在不同的平台上使用不同的编译器或设置等编译该代码,它就可能会崩溃。

更好:使用带有 Java 和 C++ 实现的标准化二进制接口(interface),如 ASN.1 或 Google 的 Protocol Buffers .

关于java - Java 中基于字节的(反)序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6899943/

相关文章:

Java:解析输入文件并提取列值

serialization - 我可以告诉 WCF Web API 序列化程序忽略嵌套的类对象吗?

.net - 如何将数据表序列化为字符串?

c# - 为什么 DataMemberAttribute 需要对 bool 属性进行特殊处理

C# - 序列化和反序列化静态成员

python - 将字典保存到文件 Python

java - 运行 spring boot build : Error creating bean with name 'entityManagerFactory' defined in class path

java - 故意限制或继承 Clojure 符号名称?

java - 开发小型规则引擎的简单设计模式

java - 在 Java 中打印出星期几