java中有没有把class直接转化为byte数组的方法? 感觉还是挺常用的,从socket读到一个byte数组,再按照协议构建一个class对象,再对这个对象进行一些处理,然后再转化为byte数组发出去。感觉这个转化过程太麻烦,有没有直接的方法将class中的所有数据成员按顺序转化为一个byte数组?以及反过来,给一个byte数组,可直接构建一个对应的class? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主想做什么?没有特殊需求的话,使用java的序列化即可。 呵呵,可能我说的不明白,举个例子。有个classclass A{int i;char c[10];void setInt(int i){}void setChar(char[] c){}....}然后要从socket中读出数据,比如前四个字节代表一个i,紧接着20个字节代表c,这样就构建了一个A,然后处理,再把处理后的A再发送出去。我现在对socket数据的发送、接收都是用byte[]做的,所以接收的时候得把byte[]依个读出,构成一个A,发送时得把A的每个成员转化为byte,最后按顺序以一个byte[]形式发出去。感觉处理的有些繁琐,有没有更简化的方法? java序列化。实现Serialize接口,使用ObjectInputStream和ObjectOutputStream。不用你自己去做这些工作的。 更进一步,你可以看看web service,rmi,ejb,corba等东东是不是满足你的需求。 再说一句,你这个是把对象转换成字节流而不是把class转换成字节流 呵呵,Java的every class都是 Class类的实力哦。先看看Class是不是可序列化的,不是就聚合它。 让这个类实现序列化,在传输时java将自动将其转为字节数组 求助java socket发送数据的问题 关于vector的使用 关于serversocket类 jTree的问题,怎么换掉jTree中难看的展开图标-----“圈中间一个点” 高手请指教:java中有没有类似c语言中的dll? 在JAVA中怎么判断系统是2000或98或ME呢 什么是self-extraceted class file? 求助!!! 我的机器被黑,所有的应用程序都不可以执行了,救救我 请问BAS4.5的序列号 如何在同一面版上使用两种布局管理器 请问如何发出一条Terminal(Mac机中命令行界面,linux命令行)指令,高手帮忙,100分!
class A{
int i;
char c[10];
void setInt(int i){
}
void setChar(char[] c){
}
....
}
然后要从socket中读出数据,比如前四个字节代表一个i,紧接着20个字节代表c,这样就构建了一个A,然后处理,再把处理后的A再发送出去。
我现在对socket数据的发送、接收都是用byte[]做的,所以接收的时候得把byte[]依个读出,构成一个A,发送时得把A的每个成员转化为byte,最后按顺序以一个byte[]形式发出去。
感觉处理的有些繁琐,有没有更简化的方法?
实现Serialize接口,使用ObjectInputStream和ObjectOutputStream。
不用你自己去做这些工作的。
先看看Class是不是可序列化的,不是就聚合它。