如何克隆输入流?
2022-08-31 06:28:06
我有一个输入流,我传递给一个方法来做一些处理。我将在其他方法中使用相同的 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";
}
}