기본형식 배열 복사 방법(clone, System.arraycopy)
1.
int[] 배열은 객체 값이며
int[] 도 참조값을 가진다.
2.
배열끼리의 복사는 참조값 복사이다.
int[] bb = new int[3]{1,2,3};
int[] aa = bb;
두개의 배열은 같은 힙 메모리를 바라보게 된다.
3.
힙 메모리 자체를 값 복사 하기 위해서는
clone() 혹은 System.arraycopy() 를 사용한다.
clone()
int[] bb = new int[3]{1,2,3};
int[] aa = (int[])bb.clone();
System.arraycopy()
int[] bb = new int[3]{1,2,3};
int[] aa = new int[3];
int[] aa = System.arraycopy(bb, 0, aa, 0, aa.length - 0);
param
1 : source array
2 : source array start index
3 : target array
4 : target array start index
5 : copy element count
* file 을 읽어 buffered 스트림을 이용하여 byte배열에 넣는 방법
BufferedInputStream bis = new BufferedInputStream( new FileInputStream( tmpFile ) );
byte[] bArr = new byte[(int)tmpFile.length()];
byte[] buf = new byte[512];
int readSize = 0;
int writeSize = 0;
while( (readSize = bis.read(buf)) > -1 ) {
logger.debug("=====readSize : " + readSize);
//bArr = ArrayUtils.addAll(bArr, buf);
System.arraycopy(buf, 0, bArr, writeSize, readSize);
writeSize += readSize;
}
attachFile.setFileCont(bArr);