例如以之前的文章為例,使用Java製作GIF動畫 - AnimatedGifEncoder,其中
OutputStream o = response.getOutputStream(); AnimatedGifEncoder encoder = new AnimatedGifEncoder(); encoder.start(o); o.flush(); o.close();
也可寫成:
ByteArrayOutputStream oo = new ByteArrayOutputStream(); AnimatedGifEncoder encoder = new AnimatedGifEncoder(); encoder.start(oo); // /* some code */ oo.flush(); oo.close(); byte[] gif_btyeArray = oo.toByteArray(); /* you can do something with gif_byteAray */ OutputStream o = response.getOutputStream(); o.write(gif_btyeArray ); o.flush(); o.close();
可以看到我們先把輸出的資料先送到ByteArrayOutputStream裡,在其close()後,還可以利用ByteArrayOutputStream的toByteArray()取回資料,對資料做想要的處理之後,再送給ServeltOutputSteam
參考資料: