Я создаю метод Java, который принимает один InputStream
как аргумент. Для удобства работы с потоком, основанным на символах, я завершаю предоставленный InputStream
в начале реализации метода следующим образом:
public void doStuff(InputStream inStream) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inStream));
...
}
Так как InputStream
(inStream
) передается моему методу, я не хочу его закрывать... поскольку я думаю, что ответственность за это должна отвечать клиент, вызывающий мой метод (это предположение верно?). Тем не менее, я думаю, что я должен закрыть BufferedReader
, который я создал; но при этом я считаю, что он автоматически закроет все остальные созданные потоки, включая inStream
.
Кто-нибудь видит способ закрыть те BufferedReader
и InputStreamReader
, которые я создал, не закрывая InputStream
, переданный моему методу? Может быть, есть способ сделать копию предоставленного InputStream
, прежде чем я его завершу? Благодаря