Ho un InputStream che passo a un metodo per eseguire alcune elaborazioni. Userò lo stesso InputStream in un altro metodo, ma dopo la prima elaborazione, InputStream sembra essere chiuso all'interno del metodo.
Come posso clonare InputStream per inviarlo al metodo che lo chiude? C'è un'altra soluzione?
EDIT: i metodi che chiudono InputStream è un metodo esterno da una lib. Non ho il controllo sulla chiusura o meno.
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";
}
}