En supposant que la chaîne comporte un multiple de huit bits (vous pouvez la compléter autrement), tirez parti de l'analyse syntaxique intégrée de Java dans la méthode Integer.valueOf pour faire quelque chose comme ceci :
String s = "11001010001010101110101001001110";
byte[] data = new byte[s.length() / 8];
for (int i = 0; i < data.length; i++) {
data[i] = (byte) Integer.parseInt(s.substring(i * 8, (i + 1) * 8), 2);
}
Ensuite, vous devriez être en mesure d'écrire les octets dans un fichier de type FileOutputStream
assez simplement.
D'autre part, si vous recherchez l'efficacité, vous devriez envisager de ne pas utiliser une chaîne pour stocker les bits au départ, mais de construire les octets directement dans votre compresseur.