Aquí hay una modificación de la respuesta de Gopi que no tiene el problema de terminación de línea y también es más efectiva ya que no necesita objetos String temporales para cada línea y evita la copia redundante en BufferedReader y el trabajo adicional en readLine().
public static String convertStreamToString(InputStream is, String ecoding) throws IOException
{
StringBuilder sb = new StringBuilder(Math.max(16, is.available()));
char[] tmp = new char[ 4096 ];
try {
InputStreamReader reader = new InputStreamReader(is, ecoding);
for(int cnt; (cnt = reader.read(tmp)) > 0;)
sb.append(tmp, 0, cnt);
} finally {
is.close();
}
return sb.toString();
}
puedes contar? Por definición, un Stream no tiene límites. A menos que haya algunas restricciones más, no puede obtener una cadena (algo de tamaño fijo) de una transmisión ilimitada. –
Esto se ha preguntado muchas veces: http://stackoverflow.com/questions/1763789/how-do-i-convert-an-inputstream-to-a-string-in-java – bakkal
http://stackoverflow.com/ questions/309424/in-java-how-do-a-read-an-input-stream-in-a-string –