¿Cómo convertir entre bytes y matrices de bits con Java?

Tengo el siguiente código tratando de convertir entre bytes y matrices de bits, de alguna manera no se está convirtiendo correctamente, ¿qué está mal y cómo corregirlo?

  String getBitsFromBytes(byte[] Byte_Array)                // 129
  {
    String Bits="";

    for (int i=0;i<Byte_Array.length;i++) Bits+=String.format("%8s",Integer.toBinaryString(Byte_Array[i] & 0xFF)).replace(' ','0');
    System.out.println(Bits);                               // 10000001
    return Bits;
  }

  byte[] getBytesFromBits(int[] bits)
  {
    byte[] results=new byte[(bits.length+7)/8];
    int byteValue=0;
    int index;
    for (index=0;index<bits.length;index++)
    {
      byteValue=(byteValue<<1)|bits[index];
      if (index%8==7) results[index/8]=(byte)byteValue;
    }

    if (index%8!=0) results[index/8]=(byte)((byte)byteValue<<(8-(index%8)));
    System.out.println(Arrays.toString(results));

    return results;
  }

...

String bit_string=getBitsFromBytes("ab".getBytes());                // 0110000101100010  :  01100001  +  01100010   -->   ab

int[] bits=new int[bit_string.length()];
for (int i=0;i<bits.length;i++) bits[i]=Integer.parseInt(bit_string.substring(i,i+1));
getBytesFromBits(bits);

Cuando lo ejecuté, obtuve lo siguiente:

0110000101100010
[97, 98]

Esperaba esto:

0110000101100010
[a, b]
Respuesta 1

Después de refactorizar algunos paquetes / clases, cuando intento comprometer mi proyecto me sale este error: org.tigris.subversion.javahl.ClientException: svn: Commit falló (los detalles siguen): svn: Item 'One-of-my- .. .

Estamos utilizando Spring versión 4.3.9 y utilizando RestTemplate para llamadas de descanso. Tenemos casos de prueba en los que intencionalmente tenemos contenido mal formateado cuando llamamos a un punto final particular (la solicitud en sí ...

Si tengo una clase auxiliar con métodos estáticos, ¿cómo puedo hacer mejor la inicialización? public class MyClass {// inicia un archivo de propiedades {properties.load (..)} public static String ...

En un proyecto grande, ejecuté la inspección "Declaración no utilizada", buscando métodos no utilizados. Encontró varios cientos y decidí eliminarlos de forma segura. IntelliJ analizó cada método (¿otra vez?) Y ...