1 min read
Java trick: Use an implicit "finally" block to automatically close a stream
In Java 7, an implicit finally block will automatically close an output stream. Meaning that, instead of all this:
PrintWriter writer = new PrintWriter(targetFile, “UTF-8”); try{ writer.write(“Hello World”); writer.close(); } catch(FileNotFoundException | UnsupportedEncodingException e){ // Handle exception }
You really only need this:
try(PrintWriter writer = new PrintWriter(targetFile, “UTF-8”)){ writer.write(“Hello World”); } catch(FileNotFoundException | UnsupportedEncodingException e) { // Handle exception }
The implicit finally block will automatically close the output stream.