将2字节数组写入OutputStream的更好方法是什么?

时间:2012-02-08 22:38:24

标签: java android performance outputstream

我有两个字节数组需要写入Socket上的OutputStream。现在我做这样的事情:

byte[] arr1, arr2;
OutputStream os;
os.write(arr1);
os.write(arr2);

我想知道是否最好首先将两个数组合并(例如使用System.arraycopy()),然后再调用os.write(combinedArray)一次?

如果重要的话,我会从Android的角度提问。

1 个答案:

答案 0 :(得分:0)

我认为从技术上讲,您最好将 OutputStream 包装在 BufferedOutputStream 中,并分别编写每个 byte [] 。完成编写后,调用 bufferedOutputStream.flush(); BufferedOutputStream将在其自己的内部缓冲区变满时自动写入,无论您使用单独的字节数组写入多少次,并且调用flush确保所有数据都被写入。底层的BufferedOutputStream将确定何时为您逻辑组合字节数组的效率最高,因此您不必使用额外的逻辑使代码变得混乱。