2016-09-10 5 views
0

이진 스트림을 저장해야하는데 나중에 텍스트로 변환합니다. Java에서 이진 스트림이 존재하지 않기 때문에 코드를 테스트하기 위해 '비트'스트림에 '비트'를 저장했습니다. 이제는 1 비트가 1 바이트로 인코딩되는 바이트 스트림이 있습니다.Android Java에서 바이트 스트림에 비트를 저장 하시겠습니까?

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

'원래'는 무엇인지 알 수 없습니다. [MCVE] (http://stackoverflow.com/help/mcve)를 사용하는 것이 좋습니다. –

답변

1

java.util.BitSet에는 원시 비트를 처리하고 바이트 배열을 변환하는 헬퍼 메서드가 포함되어 있습니다. 다음 예에서 bytes은 단일 바이트를 포함합니다.

int numberOfBits = 8; 
BitSet bitSet = new BitSet(numberOfBits); 
bitSet.set(3, true); 
bitSet.set(7, true); 

byte[] bytes = bitSet.toByteArray();