在Android Java中以字节流保存位?

时间:2016-09-10 10:44:06

标签: java android text byte bits

我需要保存二进制流,稍后我将转换为文本。由于Java中不存在二进制流,因此我只是将“位”保存在“字节”流中,以便测试我的代码。现在我有一个字节流,其中1位在1字节上编码。

byte [] stream = new byte [1500];
       int str = 0;
 byte [] data = new byte [1];
  for (int i = 0; i<original.cols(); i++)
                {
                    for (int j= 0; j<original.rows(); j++)
                    {
                       original.get(j,i, data);

                 if ((data[0]==0))
                        {
                            stream [str]=0;
                            str = str+1;
                        }
                        else
                        {
                            stream [str]=1;
                            str = str+1;
                        }
                    }

                }

任何人都可以帮我正确保存以字节流编码的比特,其中1个字节代表8比特吗?

1 个答案:

答案 0 :(得分:1)

A java.util.BitSet包含帮助方法,用于处理原始位以及与字节数组之间的转换。在以下示例中,bytes将包含单个字节:

int numberOfBits = 8;
BitSet bitSet = new BitSet(numberOfBits);
bitSet.set(3, true);
bitSet.set(7, true);

byte[] bytes = bitSet.toByteArray();