java 6 IO - wrapped streams closing [closed]
Consider : public static void read(String filename) throws IOException { String charsetName = "UTF-8"; InputStream file = new FileInputStream(filename); // say no problem InputStreamReader reader = new InputStreamReader(file, charsetName); BufferedReader buffer = new BufferedReader(reader); try { buffer.readLine(); } finally { try { buffer.close(); } catch (IOException e) { // report at least e.printStackTrace(); } } } If new InputStreamReader(file, charsetName) throws UnsupportedEncodingException , the buffer.close(); line will never be called. The alternative is extra verbose : InputStream