Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象转换为字节数组,反之亦然,无需序列化_Java_Serialization_Object_Bytearray - Fatal编程技术网

Java 将对象转换为字节数组,反之亦然,无需序列化

Java 将对象转换为字节数组,反之亦然,无需序列化,java,serialization,object,bytearray,Java,Serialization,Object,Bytearray,我有一个java项目,在这个项目中,我必须保存每次运行的数据以供以后使用。教授希望我们使用一个RandomAccessFile来实现这一点,因此我必须将对象转换为字节,以便它们可以存储在RAF中。主要问题是,如果我们使用Serializable,他会扣分,所以我的问题是: 有没有一种方法可以在不序列化的情况下将对象转换为字节数组和反之亦然 我不想要一个完整的代码,只是一个如何做的方法是赞赏 编辑: 谢谢大家的建议,我最终将对象字段转换为字节,并将其写入RAF。您可以将基本体和一些对象(字符串、字

我有一个java项目,在这个项目中,我必须保存每次运行的数据以供以后使用。教授希望我们使用一个RandomAccessFile来实现这一点,因此我必须将对象转换为字节,以便它们可以存储在RAF中。主要问题是,如果我们使用Serializable,他会扣分,所以我的问题是:

有没有一种方法可以在不序列化的情况下将对象转换为字节数组和反之亦然

我不想要一个完整的代码,只是一个如何做的方法是赞赏

编辑:


谢谢大家的建议,我最终将对象字段转换为字节,并将其写入RAF。

您可以将基本体和一些对象(字符串、字节数组和装箱基本体,如布尔和整数,将被取消装箱)直接写入RAF。如果你有一个更大的物体,把它分解成英国皇家空军可以接受的东西。例如,如果您有一个字符串列表,则在其上循环并使用编写每个字符串。请记住,您必须重新阅读,因此必须使用某种类型的标题。例如,您可能希望在元素之前写入列表的长度。

如果不能在类上使用
Serializable
,则必须使用查找对象的所有字段


之后,您可以按照Matthew Flashn的建议将这些字段值写入RandomAccessFile。

也许xml是以文本格式表示对象的好方法。您可以给每个对象一个唯一的id,并使用
id
来显示关系。

您的教授是否将此范围限制为包含简单值的对象,如byte、int、long和String,或者可以包含任何对象?您看过JAXB吗?Marhsalling/unmarshalling机制是保存和恢复对象状态而无需序列化的另一种方法。@mazaneicha,我不认为这“符合任务的精神”。@Matthew Flaschen-你怎么知道的?哦神秘教授使用java.io.serializable的扣分揭晓了!:-)我不会用反射来做这个。保存/还原任何对象不需要OP。。。只是某些特定于应用程序的类的实例。@StephenC我想你是对的。原始海报应该澄清这一点。当然,如果已经知道了类结构,就不需要开发一个通用的解决方案,这将非常复杂,特别是对于初学者来说。“你应该能够将大多数对象直接写入RAF。”如何?用哪种方法?