在java中构造位序列

在java中构造位序列,java,binary,bit,Java,Binary,Bit,在java6中,我很难让位正常工作…我正在尝试编写一个压缩程序,将位写入压缩文件…例如,一个普通字母,如“e”,可能就是ascii中的二进制序列“101” 我认为fileOutputStream.write(int)方法是我想要实现这一点的方法,但是如何用int表示位序列?您可以使用。然后使用以下公式编写一个完整字节数组: fileOutputStream.write(myBitSet.toByteArray()); 101是“e”的ascii值 你只要写下来就行了 FileOutputStr

在java6中,我很难让位正常工作…我正在尝试编写一个压缩程序,将位写入压缩文件…例如,一个普通字母,如“e”,可能就是ascii中的二进制序列“101”

我认为
fileOutputStream.write(int)
方法是我想要实现这一点的方法,但是如何用int表示位序列?

您可以使用。然后使用以下公式编写一个完整字节数组:

fileOutputStream.write(myBitSet.toByteArray());

101是“e”的ascii值

你只要写下来就行了

FileOutputStream fos =
fos.write('e'); // writes 101 which is the ascii for 'e'

顺便说一句,我提供了指向Java7文档的链接,但它在Java6中也是有效的。嗯,这不是将
e
写入流的最简单方法我不熟悉(byte[])符号,我知道位集是向量,这是向量的特殊符号吗?编辑:我刚看到我做了什么对不起,我很傻:P@PeterLawrey-当然,但这是一种“表示位序列”的方法@SetSlapShot-
byte[]
表示字节数组。您需要按位使用它吗?也就是说,你可以把2'e's放到流中,但这个字节还剩下2位?然后,您需要定义每个信息的位数等。请看一下位移位:它实际上写入了“00000101”。我不知道OP是否想要:-/二进制,但是
e
(byte)101
ascii格式,而不是
0b101