Здесь приведена модификация ответа Гопи, не имеющая проблемы с окончанием строки, а также более эффективная, так как ей не нужны временные объекты String для каждой строки и исключает избыточное копирование в BufferedReader и дополнительную работу в 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();
}
Вы можете уточнить? По определению поток неограничен. Если не существует еще каких-либо ограничений, вы не можете получить String (что-то фиксированного размера) из неограниченного потока. –
Это задано несколько раз: http://stackoverflow.com/questions/1763789/how-do-i-convert-an-inputstream-to-a-string-in-java – bakkal
http://stackoverflow.com/ Вопросы/309424/in-java-how-do-a-read-an-input-stream-in-a-string –