使用"java.util.BitSet"
将BitSet写入输出文件时,我得到一笔开销(ObjectOutputStream.writeObject()
)。
无论如何?
答案 0 :(得分:3)
这不是"开销",这是让Java确定从该文件反序列化对象时需要创建的类型的标记。
由于ObjectInputStream
不知道您序列化到文件中的内容,并且无法提供"提示",ObjectOutputStream
必须"嵌入&# 34;输入流的某些东西能够决定需要实例化的类。这就是为什么它会将"java.util.BitSet"
字符串放在BitSet
的数据前面。
使用BitSet
类中内置的序列化功能时,无法绕过编写此标记。如果您将对象自行序列化为文件,而没有其他对象,则可以将toByteArray()
调用的结果写入文件,并在阅读BitSet.valueOf(byteArray)
后调用byteArray
来自文件。