Java Language Lettura di InputStream in una stringa


Esempio

A volte potresti voler leggere l'input da byte in una stringa. Per fare ciò è necessario trovare qualcosa che converta tra byte e i "Codepoint" UTF-16 "nativi Java" utilizzati come char . Questo è fatto con un InputStreamReader .

Per accelerare un po 'il processo, è "normale" allocare un buffer, in modo da non avere un sovraccarico eccessivo durante la lettura da Input.

Java SE 7
public String inputStreamToString(InputStream inputStream) throws Exception {
     StringWriter writer = new StringWriter();

     char[] buffer = new char[1024];
     try (Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"))) {
           int n;
           while ((n = reader.read(buffer)) != -1) {
                // all this code does is redirect the output of `reader` to `writer` in
                // 1024 byte chunks
                writer.write(buffer, 0, n);
           }
     }
     return writer.toString();
}

Trasformare questo esempio in codice Java 6 (e inferiore) -compatibile è lasciato fuori come esercizio per il lettore.