Konvertieren byte[] zu String mit binärer Codierung

Möchte ich übersetzen jede byte aus einer byte[] in eine char, dann legen Sie die chars auf einer Schnur. Dies ist das so genannte "binary" - Kodierung von einigen Datenbanken. Bisher die beste die ich finden konnte ist diese riesige boilerplate:

byte[] bytes = ...;
char[] chars = new char[bytes.length];
for (int i = 0; i < bytes.length; ++i) {
    chars[i] = (char) (bytes[i] & 0xFF);
}
String s = new String(chars);

Gibt es eine weitere option, die von Java SE oder vielleicht aus den Apache Commons? Ich wünschte, ich könnte so etwas wie dieses:

final Charset BINARY_CS = Charset.forName("BINARY");
String s = new String(bytes, BINARY_CS);

Aber ich bin nicht bereit zu schreiben, ein Charset und Ihre codecs (noch) nicht. Gibt es so eine fertige binary-Zeichensatz in JRE oder in Apache Commons?

  • Wie ist das "riesige boilerplate"? Nur wickeln Sie es in eine Methode mit einem byte-array und gibt einen string zurück.
  • Nicht ganz sicher zu Ihrem problem. Nicht ISO 8859-1 (Latin-1) die Arbeit machen? Es ist ein 8-bit-Einzelbyte-Codierung...
  • Dass die Verpackung wurde getan, bevor. Aber ich hatte zum code dieser Methode ein paar mal in verschiedenen Projekten, die keine shared library zwischen Ihnen. Und ich will nicht, eine Bibliothek zu errichten, nur für diese. Das ist, warum wir Sachen wie java.util, java.text, java.lang und Apache Commons.
InformationsquelleAutor fernacolo | 2011-12-07
Schreibe einen Kommentar