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

标签 java serialization object arrays

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

有没有一种方法可以将对象转换为字节数组,反之亦然,而无需序列化?

我不需要完整的代码,只是希望了解如何做到这一点。

编辑:

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

最佳答案

您可以直接向 RAF 写入基元和一些对象(字符串、字节数组和装箱基元,例如 boolean 值和整数,它们将被拆箱)。如果您有一个更大的物体,请将其分解成 RAF 可以接受的东西。例如,如果您有一个字符串列表,请循环遍历它们并用 writeUTF 写入每个字符串。 。请记住,您必须将其读回,因此您必须使用某种 header 。例如,您可能希望在元素之前写入列表的长度。

关于java - 将对象转换为字节数组,反之亦然,无需序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7864080/

相关文章:

java - 使用键盘箭头在网格面板内移动 JButton

ruby-on-rails - 反序列化的 Rails ActiveRecord 对象不会保存到 SQL 数据库

javascript - 在 AngularJS 中删除一个对象

javascript - 通过另一个 javascript 文件添加到一个函数

java - Java中一系列数字的乘法

java - 扩展 Java 第三方 API

python - 使用重复的键属性序列化 NDB 模型

javascript - 如何通过 Node.js 或 NPM 模块组合/序列化此类 JSON 对象?

javascript - 如何在jQuery中检查空对象

java - 获取当前 <input> 元素的值的最简单/最干净的方法