개발/JAVA
배열 복사 arraycopy
보리ing
2019. 3. 20. 17:27
tcp/ip 통신에서
서버로 데이터를 보내기 위해 바디 값에 헤더값을 추가, 그리고 헤더값에
바디값에 대한 정보를 담아야 했다.
때문에 바이트형식의 배열을 생성하고 기존의 값을 변환하여 옮겨야 했다.
이 때 사용하는 것이 System.arraycopy 메소드다.
사용법은
arraycopy(Object src, int srcFrom, object mainSrc, int mainSrcFrom, length)
에서
src = 옮길 배열
srcFrom = 옮길배열의 시작위치
mainSrc= 옮겨질 대상의 배열
mainSrcFrom = 옮겨질 배열에서 덮힐 시작위치
length = 옮겨지는 배열의 수
이다.
따라서
헤더와 바디를 message 배열에 넣는다고 할 때
byte[] message = new byte[header.length+body.length];
System.arraycopy(header, 0, message, 0, header.length);
System.arraycopy(body, 0, message, header.length, body.length);
가 된다.
arraycopy의 다른 쓰임으로는 길이가 긴 array 배열이 있을 때 이를 통해 초기화하는 경우 빠르게 처리할 수 있다고 한다.