如何克隆InputStream?

我有一个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";

    }

}


牛魔王的故事
浏览 821回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java