我有ArrayList的字节。我想使用System.arraycopy函数来组合ArrayList的所有字节。以下是我的代码。
public void createFile(ArrayList<byte[]> arrayList) throws IOException
{
FileOutputStream fos = new FileOutputStream(Constant.MERGE_DIRECOTRY + "out" + Constant.FILE_EXTENSION.toString());
for(byte[] data: arrayList)
fos.write(data);
fos.close();
MediaPlayer mp = MediaPlayer.create(MergerActivity.this, Uri.parse(Constant.MERGE_DIRECOTRY + "out" + Constant.FILE_EXTENSION.toString()));
if(mp != null)
{
totalduration = totalduration + mp.getDuration();
Log.d("duration",""+Utilis.milliSecondsToTimer(totalduration));
}
}
如果fos.write()。
,我如何使用System.arraycopy函数答案 0 :(得分:2)
要使用System.arraycopy
,您必须首先找出输出数组所需的长度:
int len = 0;
for(byte[] data: arrayList)
len += data.length;
现在您可以将源数组复制到目标数组:
byte[] output = new byte[len];
int pos = 0;
for(byte[] data: arrayList) {
System.arrayscopy(data,0,output,pos,data.length);
pos+=data.length;
}