nochnCheffe schrieb:
> Moin, wie macht man es besser?
Read hat einen Rückgabewert welchen man auswerten sollte, außerdem
sollte man bei der Umwandlung byte zu char immer das Charset angeben:
1 | int read = input.read(chunk, 0, available);
|
2 | if (read > 0) {
|
3 | System.out.print(new String(chunk, 0, read, "UTF-8"));
|
4 | }
|
Karl Heinz Buchegger schrieb:
> Man könnte sich ja auch den chunk als Member in der Klasse halten
Wenn es sich um einen einbyte Zeichensatz hadelt ginge auch:
1 | while(input.available() > 0) {
|
2 | System.out.println((char)input.read());
|
3 | }
|
Für Multibyte ist das Beispiel aber eh nicht ausgerüstet... Falls du
wirklich Zeichen lesen willst wäre ein Reader mit einem
BufferedInputStream welcher in einem eigenem Thread ausgeführt wird eh
besser geeigent, in den Meisten Fällen will man eh Zeilenweise lesen, da
ist der Eventbasierte Ansatz eh nicht so pralle...
1 | BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(input, 100)));
|
2 | String line;
|
3 | while ((line = reader.readLine()) != null) {
|
4 | System.out.println(line);
|
5 | }
|