我有两个字节数组需要写入Socket上的OutputStream。现在我做这样的事情:
byte[] arr1, arr2;
OutputStream os;
os.write(arr1);
os.write(arr2);
我想知道是否最好首先将两个数组合并(例如使用System.arraycopy()
),然后再调用os.write(combinedArray)
一次?
如果重要的话,我会从Android的角度提问。
答案 0 :(得分:0)
我认为从技术上讲,您最好将 OutputStream 包装在 BufferedOutputStream 中,并分别编写每个 byte [] 。完成编写后,调用 bufferedOutputStream.flush(); BufferedOutputStream将在其自己的内部缓冲区变满时自动写入,无论您使用单独的字节数组写入多少次,并且调用flush确保所有数据都被写入。底层的BufferedOutputStream将确定何时为您逻辑组合字节数组的效率最高,因此您不必使用额外的逻辑使代码变得混乱。