Hallo,
ich wundere mich gerade, ob:
der beste Weg ist, um ein gegebenes Array mit Bytes in ein Array aus Chars umzuwandeln. Da die Bytes u.U auch UTF-8 beschreiben, will ich es ungerne von Hand machen, da es doch sehr mühselig ist die bytes entsprechend zu sortieren. Da die Umwandlung aber in einer Schleife durchgeführt wird, wäre mir die Effizienz sehr wichtig und ich wundere mich, ob es nicht mit weniger Rechenarbeit gehen könnte, da die VM sich den Zwischenschritt das String Objekt zu erstellen, eigentlich sparen könnte. Aber wie stelle ich das an? Ideen?
Danke für jede Hilfe!
Vg, Rafael
PS: Die Lösung über
wollte ich eigentlich vermeiden, da das byte Array eigentlich schon aus einem Stream kommt und der InputStreamReader (in diesem Falle leider) buffert. Sofern ich das mache, verliere ich also ein paar Bytes im Buffer und das kann sich die Anwendung nicht erlauben.
ich wundere mich gerade, ob:
Java:
Charset CHARSET = Charset.forName("UTF-8");
byte[] b = ...;
...
char[] c = new String(b, CHARSET).toCharArray();
der beste Weg ist, um ein gegebenes Array mit Bytes in ein Array aus Chars umzuwandeln. Da die Bytes u.U auch UTF-8 beschreiben, will ich es ungerne von Hand machen, da es doch sehr mühselig ist die bytes entsprechend zu sortieren. Da die Umwandlung aber in einer Schleife durchgeführt wird, wäre mir die Effizienz sehr wichtig und ich wundere mich, ob es nicht mit weniger Rechenarbeit gehen könnte, da die VM sich den Zwischenschritt das String Objekt zu erstellen, eigentlich sparen könnte. Aber wie stelle ich das an? Ideen?
Danke für jede Hilfe!
Vg, Rafael
PS: Die Lösung über
Java:
new InputStreamReader(new ByteArrayInputStream(b)).read()
Zuletzt bearbeitet: