在将BufferedOutputStream包装在ByteArrayOutputStream中,而不是仅使用ByteArrrayOutputStream本身时,是否有任何优势?
在将BufferedOutputStream包装在ByteArrayOutputStream中,而不是仅使用ByteArrrayOutputStream本身时,是否有任何优势?
通常使用BufferedOutputStream包装器来避免频繁的磁盘或网络写入。相比较于分别写入许多小块,进行几个较大的操作可能更加高效。由于ByteArrayOutputStream在内存中操作,因此我认为进行包装是无意义的。
如果您想要得到确切答案,请尝试创建一个简单的性能测量应用程序。
如果你想要高性能,就不建议使用ByteArrayOutputStream,但它有一个有趣的特性,就是可以发送长度未知的消息。为了更好地理解这两种方法的工作原理,请参见http://java-performance.info/java-io-bytearrayoutputstream/。