Java Language Lecture de InputStream dans une chaîne


Exemple

Parfois, vous souhaiterez peut-être lire des octets dans une chaîne. Pour ce faire , vous aurez besoin de trouver quelque chose qui convertit entre byte et UTF-16 Codepoints « Java natif » utilisé comme char . Cela se fait avec un InputStreamReader .

Pour accélérer le processus un peu, il est "habituel" d'allouer un tampon, afin de ne pas avoir trop de temps lors de la lecture de 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();
}

Transformer cet exemple en code Java SE 6 (et inférieur) est omis comme exercice pour le lecteur.