У меня есть это приложение, где я должен использовать класс BitSet и записывать в файл по частям. Я знаю, что не могу записать биты в файл, поэтому сначала я преобразовываю объект BitSet в массив байтов и пишу в качестве байтового массива. Но проблема в том, что класс BitSet, индексированный из right to left, когда я преобразовываю объект BitSet в массив байтов и записываю в файл, он записывает обратную ссылку.
Например, это мой объект BitSet:
10100100
и BitSet.get(0) дает false, а BitSet.get(7) дает значение true. Я хочу записать это в файл, например:
00100101
поэтому первый бит будет равен 0, а последний бит будет равен 1.
Мой метод конвертации:
public static byte[] toByteArray(BitSet bits) 
{
    byte[] bytes = new byte[(bits.length() + 7) / 8];       
    for (int i = 0; i < bits.length(); i++) {
        if (bits.get(i)) {
            bytes[bytes.length - i / 8 - 1] |= 1 << (i % 8);
        }
    }
    return bytes;
}
Мой метод записи:
    FileOutputStream fos = new FileOutputStream(filePath);
    fos.write(BitOperations.toByteArray(cBitSet));
    fos.close();
Предполагается ли это так, или я делаю что-то неправильно? Спасибо.