Is there any advantage in wrapping a BufferedOutputStream around a ByteArrayOutputStream instead of just using the ByteArrrayOutputStream by itself?
Absolutely none. Though BufferedWriter and BufferedReader do offer extra functionality were you to be operating on strings.