我正在创建一个接受单个InputStream作为参数的Java方法.为了方便使用基于字符的流,我InputStream 在方法实现的开头包装提供,如下所示:
public void doStuff(InputStream inStream) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
...
}
Run Code Online (Sandbox Code Playgroud)
由于InputStream(inStream)传递给我的方法,我不想关闭它...因为我认为应该是客户端调用我的方法的责任(这个假设是正确的吗?).但是,我认为我应该关闭BufferedReader我创造的; 但是这样做,我相信它会自动关闭所有其他组成的流,包括inStream.
有没有人看到我关闭BufferedReader和InputStreamReader创建的方式,而不是关闭InputStream传递给我的方法?也许有一种方法可以InputStream在我包装它之前制作一份副本?谢谢