在没有开销的情况下将 BitSet 写入输出文件?

Writing BitSet to output file without overhead?

使用 ObjectOutputStream.writeObject().

将 BitSet 写入输出文件时,我得到一行开销 ("java.util.BitSet")

还有吗?

那不是 "overhead",那不是让 Java 确定在从该文件反序列化对象时需要创建什么类型的标记。

由于 ObjectInputStream 不知道您将什么序列化到文件中,也无法为您提供 "hint",ObjectOutputStream 必须 "embed"输入流能够决定什么 class 需要被实例化。这就是为什么它将 "java.util.BitSet" 字符串放在 BitSet.

的数据前面的原因

当您使用 BitSet class 中内置的序列化功能时,您无法避免编写此标记。如果你将对象本身序列化到一个文件中,没有其他对象进入它,你可以将 toByteArray() 调用的结果写入一个文件,并在读取 [=17= 之后调用 BitSet.valueOf(byteArray) ] 来自文件。