- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在序列化一个类(保存类的内容)以便稍后恢复它。所以我使用 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/
我是一名优秀的程序员,十分优秀!