您的位置:首页 > 运维架构

System.arraycopy()实现数组之间的复制

2017-09-20 11:19 405 查看

一、System.arraycopy()方法实现复制

1、System中提供了一个native静态方法arraycopy(),可以使用这个方法来实现数组之间的复制。对于一维数组来说,这种复制属性值传递,修改副本不会影响原来的值。对于二维或者一维数组中存放的是对象时,复制结果是一维的引用变量传递给副本的一维数组,修改副本时,会影响原来的数组。

2、System.arraycopy的函数原型是:

public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length);


其中:src表示源数组,srcPos表示源数组要复制的起始位置,desc表示目标数组,destPos:目标数组放置的起始位置,length表示要复制的长度。

二、利用System.arraycopy实现数组复制的示例:

将文本读到bytes[]中,如果文件小于bytes[]中初始化的长度,将实际读取的len长度动态赋值给dest[]长度,然后将bytes[]拷贝到dest[]中

public static byte[] getBytes() {
FileInputStream fis = null;
byte[] bytes = new byte[1024];
byte[] dest = null;
try {
fis = new FileInputStream("a.text");
int len = 0;
if ((len = fis.read(bytes)) != -1) {
dest = new byte[len];
System.arraycopy(bytes, 0, dest, 0, len);
}

} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return dest;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息