如何将对象转换为输入流

Posted

技术标签:

【中文标题】如何将对象转换为输入流【英文标题】:How can I convert an Object to Inputstream 【发布时间】:2012-03-05 01:40:34 【问题描述】:

如何将 java 对象转换为 InputStream?

【问题讨论】:

【参考方案1】:

您可以使用ObjectOutputStream

您将对象(下面代码中的obj)写入ObjectOutputStream,您要转换为输入流的对象必须实现Serializable。


    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos);


    oos.writeObject(obj);

    oos.flush();
    oos.close();

    InputStream is = new ByteArrayInputStream(baos.toByteArray());

【讨论】:

这是一个不错的测试,但保存/检索 jpeg 不是很方便。 如果 obj 没有实现 Serializable 接口怎么办。 只需将“implements Serializable”添加到您的课程中。您可能还希望“生成可序列化的 UUID”,大多数 IDE 都会为您执行此操作,例如 eclipse。这样当您通过网络对对象进行序列化时,不会与内存中的类似对象发生冲突。

以上是关于如何将对象转换为输入流的主要内容,如果未能解决你的问题,请参考以下文章

无法将 IntStream 转换为某些对象流

将对象列表转换为映射Java 8流

使用流将对象列表转换为从 toString 方法获得的字符串

如何将 Base64 字符串转换为 javascript 文件对象,如文件输入表单?

通过流将带有列表的列表对象转换为Java 8中的映射[重复]

java学习--基础知识进阶第十天--标准输入流 & 转换流 & 打印流对象操作流 Properties集合