Ich habe einen InputStream, den ich an eine Methode übergebe, um etwas zu verarbeiten. Ich werde den gleichen InputStream in einer anderen Methode verwenden, aber nach der ersten Verarbeitung scheint der InputStream innerhalb der Methode geschlossen zu sein.
Wie kann ich den InputStream klonen, um ihn an die Methode zu senden, die ihn schließt? Gibt es eine andere Lösung?
BEARBEITEN: Die Methoden, die den InputStream schließen, sind eine externe Methode aus einer Bibliothek. 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";
}
}