Ich habe einen InputStream, die ich an eine Methode übergeben, um einige Verarbeitung zu tun. Ich werde denselben InputStream in einer anderen Methode verwenden, aber nach der ersten Verarbeitung wird der InputStream innerhalb der Methode geschlossen.
Wie kann ich den InputStream klonen, um ihn an die Methode zu senden, die ihn schließt? Gibt es eine andere Lösung?
EDIT: die Methoden, die den InputStream schließt, ist eine externe Methode aus einer Lib. Ich habe keine Kontrolle über das Schließen oder nicht.
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";
}
}