У мене є InputStream, який я передаю методу, щоб зробити деяку обробку. Я буду використовувати той же 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";
}
}