假设我定义一个类
public class PointFloat {
float x;
float y;
}
然后我实例化一个数组
PointFloat[] points = new PointFloat[10];
此时我有一个包含 10 个 PointFloat 对象的数组。假设某些代码将值 x 和 y 分配给每个 float 。 我需要的是将该数组存储在 Mysql 数据库的 VARBINARY 中。
为了实现这一点,我需要将此 PointFloats 数组转换为 byte[],以便我可以使用PreparedStatement 插入数据库 对于我来说,使用PreparedStatement 并不是什么新鲜事,但我是第一次使用对象序列化。
如何将任意大小的 PointFloat 数组转换为 byte[]?。 请尽可能简单。
非常感谢您的阅读。
最佳答案
您可以简单地使用ObjectOutputStream将数组写入 ByteArrayOutputStream 。有关详细信息和示例,请参阅此答案:https://stackoverflow.com/a/2836659/337621
由于您的对象包含两个 float ,因此标准序列化完全满足您的需求。
关于 java 。序列化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621535/