यहां गोपी के उत्तर का एक संशोधन है जिसमें लाइन समाप्त होने वाली समस्या नहीं है और यह भी अधिक प्रभावी है क्योंकि इसे प्रत्येक पंक्ति के लिए अस्थायी स्ट्रिंग ऑब्जेक्ट्स की आवश्यकता नहीं है और BufferedReader में अनावश्यक प्रतिलिपि से बचने और रीडलाइन में अतिरिक्त कार्य से बचाता है()।
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();
}
आप विस्तार से बता सकते हैं? परिभाषा के अनुसार, एक स्ट्रीम unbounded है। जब तक कुछ और बाधाएं न हों, तब तक आप एक असंबद्ध धारा से स्ट्रिंग (निश्चित आकार का कुछ) नहीं प्राप्त कर सकते हैं। –
यह कई बार कहा गया है: http://stackoverflow.com/questions/1763789/how-do-i-convert-an-inputstream-to-a-string-in-java – bakkal
http://stackoverflow.com/ प्रश्न/309,424/इन-जावा है कि कैसे करते हैं-एक-पढ़ने के लिए एक इनपुट स्ट्रीम में टु-ए-स्ट्रिंग –