Possible Duplicate:
Best way to close nested streams in Java?
How we close nested streams? Closing all of them? If yes what is the order?
FileOutputStream out = new FileOutputStream("data.txt", true);
PrintWriter pout = new PrintWriter(out);
/* do some I/O */
pout.close();
out.close();
or closing the the out most stream will close all of them.
pout.close(); // Is this enough?
When closing chained streams, you only need to close the outermost stream. Any errors will be propagated up the chain and be caught.
Take a look at here. Probably this question has been asked before.