Tôi có một InputStream mà tôi chuyển đến một phương thức để thực hiện một số xử lý. Tôi sẽ sử dụng cùng InputStream trong phương thức khác, nhưng sau lần xử lý đầu tiên, InputStream xuất hiện sẽ bị đóng bên trong phương thức.
Làm cách nào tôi có thể sao chép InputStream để gửi đến phương thức đóng anh ta? Có giải pháp nào khác?
EDIT: các phương thức đóng InputStream là một phương thức bên ngoài từ lib. Tôi không có quyền kiểm soát về việc đóng cửa hay không.
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";
}
}