将输入作为比特流处理

时间:2012-09-01 11:59:38

标签: java input bit

我正处理的情况是,我必须读取的输入是一串位。所以输入可以是以下形式。第一行告诉我将接收的位数,然后下一行是一位一行的位流。

10
011011110

现在我正在尝试的是它是否可以处理我收到的输入。我知道http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html类有一个方法nextByte(),它将输入的下一个标记作为一个字节处理。我想知道是否可以将输入作为位数组处理。

1 个答案:

答案 0 :(得分:1)

在Java 7中,您有一个类BitSet,可以这样使用:

public static BitSet fromByte(byte b)  
{  
    BitSet bits = new BitSet(8);  
    for (int i = 0; i < 8; i++)  
    {  
       bits.set(i, (b & 1) == 1);  
       b >>= 1;  
     }  
     return bits;  
 }

您必须从流中获取byte,然后只需调用fromByte方法。