I have the following piece of code in a try/catch block
InputStream inputstream = conn.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
By convention, wrapper streams (which wrap existing streams) close the underlying stream when they are closed, so only have to close
bufferedreader in your example. Also, it is usually harmless to close an already closed stream, so closing all 3 streams won't hurt.