List<byte[]> listOfByteArrays;我希望通过追加byte[]中的所有元素,将存储在这个List中的所有byte[]都放到一个byte[]中。我知道一种方法,那就是使用System.arrayCopy(),但是在循环中使用它将是有点麻烦的(temporary variables and byte[] arrays)。我想找个更好的方法,但做不到。有什么建议吗?我可以使用任何外部API吗?
发布于 2013-08-16 15:30:43
带番石榴的单线机
Bytes.concat(listOfByteArray.toArray(new byte[0][]));或者再长一点(在较短的版本中,只需要在toArray内部分配一个字节数组)
Bytes.concat(listOfByteArray.toArray(new byte[listOfByteArray.size()][]));发布于 2013-08-16 15:24:02
尝试使用ByteArrayOutputStream
ByteArrayOutputStream out= new ByteArrayOutputStream( );在环
out.write(eachBytearray);后循环
byte result[] = out.toByteArray( );发布于 2013-08-16 15:23:13
为什么需要临时数组?
System.arraycopy将数组从列表复制到目标数组中的适当位置。(很明显,您需要跟踪目标数组中的偏移量。)https://stackoverflow.com/questions/18276781
复制相似问题