如何从 java 中另存为 bytearrayoutputstream 的文件中取回位集?

How to get the bitset back from a file saved as bytearrayoutputstream in java?

我创建了一个名为 bBitSet 并使用 java 中的代码片段将其保存到一个文件中。

    byte[] bs = b.toByteArray();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    baos.write(bs);
    FileOutputStream fr_out = new FileOutputStream("output.txt");
    baos.writeTo(fr_out);

现在谁能帮我弄清楚如何读取这个 "output.txt" 文件并取回 BitSet "b"?

谢谢

编辑关于这个被标记为重复的问题: 上面给出的 link 可能有一个解决方案,作为人们在评论中讨论的一部分,但在实际的答案文本字段中没有。更何况,上面的问题并没有提到我们如何得到一个 BitSet 的问题,它只是谈论如何得到一个 byte 回来。事实上,这完全是我一天前面临的另一个问题,但这个问题与我上面解释的那个问题完全不同。所以我想请社区和 person/s 重新考虑他们将这个问题标记为与我自己的另一个问题重复的行为。

TLDR:这个问题问什么是 2 + 2 = ?,另一个问题问什么是 2 * 2 = ?,但是在回答 2 * 2 时,有人也恰好回答了 2 + 2 = ? (我花了几个小时才找到解决方案,我是从另一个 link,而不是上面发布的解决方案中找到的),仅仅因为答案相似并不意味着问题相似,最重要的是,我不想要任何程序员继续搜索数小时,他们只需查找这个问题并了解如何做事,而不是浏览整个网络。

谢谢。

由于还没有答案,我想 post 我解决这个问题的方法之一,但是如果更有经验的人可以提供更好的解决方案,那就太好了。这是我从文件中取回 BitSet 的操作(我使用 toByteArray() 方法和 ByteArrayOutputStream 向其中写入了 BitSet)。

    Path path = Paths.get("output.txt");
    byte[] ans = Files.readAllBytes(path);
    BitSet bits = BitSet.valueOf(ans);

现在 bits 有了原来的 BitSet。