java - 在 Android Java 中将位保存在字节流中?

标签 java android text byte bit

我需要保存一个二进制流,稍后将其转换为文本。由于 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/

相关文章:

java - 用于添加图像的 Wicket 拖放功能

java - Android:为什么我不能在 onCreate 方法之外的按钮上调用 setOnClickListener 方法?

ruby-on-rails - PG::ProgramLimitExceeded: 错误:索引行需要 13904 字节,最大大小为 8191

java - "on-heap"和 "off-heap"之间的区别

java - 在Java中获取驱动器数量

Android模拟器图片下载失败

Javascript 正则表达式 urlify 文本

Python:从列表列表中删除最后一个元素?

java - 将 JExpression (JOp.cond()) 添加到 JBlock(JMethod 主体)

Android 原生崩溃调试符号