我需要保存二进制流,稍后我将转换为文本。由于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比特吗?
答案 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();