처리를 수행하기 위해 메소드에 전달하는 InputStream이 있습니다. 다른 메소드에서 동일한 InputStream을 사용하지만 첫 번째 처리 후 InputStream이 메소드 내부에서 닫혀있는 것으로 보입니다.
InputStream을 복제하여 그를 닫는 메소드로 보내려면 어떻게해야합니까? 다른 해결책이 있습니까?
편집 : 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";
}
}