gpt4 book ai didi

java - 如何使序列化类的输出更有效率?

转载 作者:行者123 更新时间:2023-11-29 07:43:26 25 4
gpt4 key购买 nike

我正在序列化一个类(保存类的内容)以便稍后恢复它。所以我使用 ObjectOutputStream 类实现了内置的序列化机制,但输出大小相当大。

但我想让输出比内置序列化方法生成的输出更高效或更小。我怎样才能使输出更有效率?

我知道,

Java supports serialization, which is the capability of taking an object and creating a byte representation that can be used to restore the object at a later time. By using an internal serialization mechanism, most of the setup to serialize objects is taken care of. Java will transform the properties of an object into a byte stream, which can then be saved to a file or transmitted over the wire.

但我已经在这样做了,我需要更有效的方法。有可能吗?

最佳答案

我建议不要使用 Java 内置序列化。你最好使用序列化库,比如 Jackson ,或您喜欢的任何其他内容。

现在,关于输出大小,您可以通过用 Java 的 GZIPOutputStream 修饰 ObjectOutputStream 来压缩输出。 :

OutputStream os = ...; // this is your ObjectOutputStream
GZIPOutputStream gzipOutputStream = new GZIPOutputStream(os);

然后像使用原始 ObjectOutputStream 一样使用 gzipOutputStream 实例。

请记住,您还应该使用 Java 的 GZIPInputStream为了读取序列化数据:

InputStream is = ...; // this is your actual InputStream
GZIPInputStream gzipInputStream = new GZIPInputStream(is);

然后像使用原始 InputStream 一样使用 gzipInputStream 实例。

关于java - 如何使序列化类的输出更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com