将BitSet写入输出文件没有开销?

时间:2015-05-21 18:14:27

标签: java huffman-code bitset

使用"java.util.BitSet"将BitSet写入输出文件时,我得到一笔开销(ObjectOutputStream.writeObject())。

无论如何?

1 个答案:

答案 0 :(得分:3)

这不是"开销",这是让Java确定从该文件反序列化对象时需要创建的类型的标记。

由于ObjectInputStream不知道您序列化到文件中的内容,并且无法提供"提示",ObjectOutputStream必须"嵌入&# 34;输入流的某些东西能够决定需要实例化的类。这就是为什么它会将"java.util.BitSet"字符串放在BitSet的数据前面。

使用BitSet类中内置的序列化功能时,无法绕过编写此标记。如果您将对象自行序列化为文件,而没有其他对象,则可以将toByteArray()调用的结果写入文件,并在阅读BitSet.valueOf(byteArray)后调用byteArray来自文件。