我需要保存一个二进制流,稍后将其转换为文本。由于 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 位吗?
最佳答案
一个java.util.BitSet
包含用于处理原始位以及与字节数组之间的转换的辅助方法。在以下示例中,bytes
将包含单个字节:
int numberOfBits = 8;
BitSet bitSet = new BitSet(numberOfBits);
bitSet.set(3, true);
bitSet.set(7, true);
byte[] bytes = bitSet.toByteArray();
关于java - 在 Android Java 中将位保存在字节流中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39425245/