在Java中将任何对象转换为字节数组

我有一个X类型的对象,我想在将其发送到S3之前将其转换为字节数组。有人可以告诉我该怎么做吗?我感谢您的帮助。



LEATH
浏览 800回答 3
3回答

慕森王

是的 只需使用二进制序列化即可。您必须使用每个对象,implements Serializable但是从那里开始很简单。如果要避免实现Serializable接口,您的另一种选择是使用反射,并使用以下过程来对缓冲区进行数据读写:/**&nbsp;&nbsp;* Sets all int fields in an object to 0.&nbsp;*&nbsp;* @param obj The object to operate on.&nbsp;*&nbsp;* @throws RuntimeException If there is a reflection problem.&nbsp;*/&nbsp;public static void initPublicIntFields(final Object obj) {&nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp;Field[] fields = obj.getClass().getFields();&nbsp; &nbsp; &nbsp; &nbsp;for (int idx = 0; idx < fields.length; idx++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (fields[idx].getType() == int.class) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fields[idx].setInt(obj, 0);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; } catch (final IllegalAccessException ex) {&nbsp; &nbsp; &nbsp; &nbsp;throw new RuntimeException(ex);&nbsp; &nbsp; }&nbsp;}

慕森卡

正如我在其他类似问题中提到的那样,您可能需要考虑压缩数据,因为默认的Java序列化有点冗长。您可以通过在对象流和字节流之间放置一个GZIPInput / OutputStream来实现。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java