这里是 Java 新手。是否有任何辅助函数可以将数据进出字节数组进行序列化?我正在编写一个实现网络协议(protocol)的 Java 包。所以我必须在循环中编写一些典型的变量,例如版本(1字节)、序列号(长)和二进制数据(字节)。我如何在 Java 中执行此操作?来自 C 我正在考虑创建所需大小的字节数组,然后由于没有 memcpy() 我将 long 转换为临时字节数组,然后将其复制到实际的字节数组中。看起来效率很低,而且很容易出错。是否有一个类可以用来将参数编码和解码到字节数组?
为什么所有 Socket 类只处理 char[] 而不是 byte[]?根据定义,套接字还必须处理二进制数据。在 Java 中这是如何完成的?
我确信我缺少的是 Java 思维方式。如果有人能指点我,我将不胜感激。
编辑:我确实查看了 DataOutputStream 和 DataInputStream,但我无法将字节转换为字符串而不是 byte[],这意味着信息可能会在写入套接字的转换中丢失。
- 帕夫
最佳答案
看看DataInputStream
、DataOutputStream
、ObjectInputStream
和ObjectOutputStream
。首先检查您是否可以接受数据的布局。另外,序列化。
关于套接字上下文中的 Java 和二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382854/