-
배열 복사 arraycopy개발/JAVA 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 배열이 있을 때 이를 통해 초기화하는 경우 빠르게 처리할 수 있다고 한다.
'개발 > JAVA' 카테고리의 다른 글
이름 규칙 (0) 2019.07.08 java 형변환 (0) 2019.05.09 map 데이터 전체 읽으며 sql 처리시 에러 java.util.ConcurrentModificationException: null (0) 2019.04.08 String to hex을 hex byte array (0) 2019.03.22 이클립스에서 기본 클래스 을(를) 찾거나 로드할 수 없습니다 가 뜰 때 (0) 2019.03.21 댓글