Saya memiliki InputStream yang saya berikan ke metode untuk melakukan pemrosesan. Saya akan menggunakan InputStream yang sama dalam metode lain, tetapi setelah pemrosesan pertama, InputStream tampaknya ditutup di dalam metode.
Bagaimana saya bisa mengkloning InputStream untuk mengirim ke metode yang menutupnya? Ada solusi lain?
EDIT: metode yang menutup InputStream adalah metode eksternal dari lib. Saya tidak punya kendali tentang penutupan atau tidak.
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";
}
}