如何将一个对象转换为输入流(InputStream)?

35

如何将Java对象转换为InputStream?

1个回答

64

你可以使用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并不是很方便。 - taitelman
3
如果obj没有实现Serializable接口,会怎样? - PeaceIsPearl
1
只需在您的类中添加“implements Serializable”。您可能还希望“生成可序列化的UUID”,大多数IDE都可以为您完成,例如eclipse。这样,当您将对象跨网络序列化时,就不会与内存中的类似对象发生冲突。 - atom88
如果对象大小大于2GB怎么办? - Arun Singhal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接