मेरे पास एक इनपुटस्ट्रीम है जिसे मैं कुछ प्रोसेसिंग करने के लिए एक विधि के पास देता हूं। मैं अन्य विधि में उसी InputStream का उपयोग करूंगा, लेकिन पहली प्रसंस्करण के बाद, InputStream विधि के अंदर बंद हो जाता है।
मैं उसे कैसे बंद करने वाली विधि को भेजने के लिए InputStream को क्लोन कर सकता हूं? एक और उपाय है?
EDIT: InputStream को बंद करने वाली विधियाँ एक lib से एक बाहरी विधि है। मुझे बंद करने या नहीं करने के बारे में नियंत्रण नहीं है।
private String getContent(HttpURLConnection con) {
InputStream content = null;
String charset = "";
try {
content = con.getInputStream();
CloseShieldInputStream csContent = new CloseShieldInputStream(content);
charset = getCharset(csContent);
return IOUtils.toString(content,charset);
} catch (Exception e) {
System.out.println("Error downloading page: " + e);
return null;
}
}
private String getCharset(InputStream content) {
try {
Source parser = new Source(content);
return parser.getEncoding();
} catch (Exception e) {
System.out.println("Error determining charset: " + e);
return "UTF-8";
}
}