The answer to your question is not merely "yes" or "no".
First, calling flush() on a BufferedOutputStream is unnecessary because it invokes flush() when one invokes close().
Furthermore, the purpose of a buffered stream is to prevent lots of low-level reads and writes since accessing physical storage, networks, databases and so on because each are slow operations. You aren't writing small bits of data and incurring that cost (as often), so using a Buffered*putStream is unnecessary (the default buffer of a Buffered*putStream is 8k, so at best it's cutting your disk access by half). Now if you were reading the input file byte by byte, using buffered streams would have a significant benefit AND flushing after each write would have a significant penalty.
Have a look at the
IO Chapter of
Java Platform Performance. It discusses these issues and tells how to measure performance and evaluate alternatives.