Как вернуть битовый набор из файла, сохраненного как bytearrayoutputstream в java?

Я создал BitSet с именем b и сохранил его в файл, используя этот фрагмент кода в 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"?

Спасибо

Изменить в отношении того, что этот вопрос помечен как дубликат: приведенная выше ссылка может иметь решение как часть обсуждения, которое люди имели в своих комментариях, но не в текстовом поле фактического ответа. Не говоря уже о том, что приведенный выше вопрос не относится к вопросу о том, как мы можем получить BitSet, он говорит только о том, как вернуть byte. На самом деле это была совсем другая проблема, с которой я столкнулся день назад, но этот вопрос полностью отличается от того, что я объяснил выше. Поэтому я хотел бы попросить сообщество и людей пересмотреть свои действия по пометке этого вопроса как дубликата с другим моим вопросом.

TLDR: этот вопрос спрашивал, что такое 2 + 2 = ?, а другой вопрос спрашивал, что такое 2 * 2 = ?, но при ответе 2 * 2 кто-то также ответил 2 + 2 = ? (мне потребовались часы, чтобы найти решение, и я сделал это по другой ссылке, а не по той, что была опубликована выше), то, что ответы похожи, не означает, что вопросы одинаковы, и, прежде всего, я не хочу, чтобы какой-либо программист продолжал искать вещи часами, когда они могли просто найти этот вопрос и узнать, как что-то делать, вместо того, чтобы просматривать всю сеть.

Спасибо.


person theprogrammer    schedule 24.04.2016    source источник
comment
Этот вопрос является дубликатом вопроса, который вы задали вчера. Если вы считаете, что этот вопрос не следует считать дубликатом, вам следует не задавать этот новый вопрос, а отредактировать предыдущий.   -  person Bakuriu    schedule 24.04.2016
comment
Оба вопроса действительно разные, так как я могу отредактировать другой вопрос, если он совершенно подлинный? Просто так получилось, что уже был другой вопрос для that вопроса о переполнении стека, но этот вопрос никогда раньше не обсуждался, я живой пример, так как мне потребовалось 2 часа, чтобы найти решение этого вопроса. Позвольте мне еще раз напомнить вам, что этот вопрос касается возврата BitSet, а не самого байта (это то, что я задал в своем предыдущем вопросе, на который уже был дан ответ на SO, и я согласен, что это дубликат), следовательно, это никоим образом является дубликатом.   -  person theprogrammer    schedule 25.04.2016
comment
Итак, даже после предоставления кристально ясного объяснения сообщество все еще думает, что это дубликат?   -  person theprogrammer    schedule 29.04.2016


Ответы (1)


Поскольку ответов пока нет, я хотел бы опубликовать один из способов, которыми я разобрался с этим, однако было бы здорово, если бы кто-то более опытный мог дать лучшее решение. Вот что я сделал, чтобы вернуть свой BitSet из файла (к которому я написал BitSet, используя метод toByteArray() и ByteArrayOutputStream).

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

Теперь биты имеют оригинальный BitSet.

person theprogrammer    schedule 24.04.2016