我有一个java项目,我必须在其中保存每次运行的数据以供以后使用。教授希望我们使用 RandomAccessFile 来执行此操作,因此我必须将对象转换为字节,以便将它们存储在 RAF 中。主要问题是如果我们使用Serialized他会扣分,所以我的问题是:
有没有一种方法可以将对象转换为字节数组,反之亦然,而无需序列化?
我不需要完整的代码,只是希望了解如何做到这一点。
编辑:
谢谢大家的建议,我最终将对象字段转换为字节并将其写入 RAF。
最佳答案
您可以直接向 RAF 写入基元和一些对象(字符串、字节数组和装箱基元,例如 boolean 值和整数,它们将被拆箱)。如果您有一个更大的物体,请将其分解成 RAF 可以接受的东西。例如,如果您有一个字符串列表,请循环遍历它们并用 writeUTF 写入每个字符串。 。请记住,您必须将其读回,因此您必须使用某种 header 。例如,您可能希望在元素之前写入列表的长度。
关于java - 将对象转换为字节数组,反之亦然,无需序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864080/