투케이2K

41. (java/자바) System.arraycopy 배열 복사 - System.arraycopy 사용해 byte 배열에 저장된 실데이터만 복사하기 본문

Java

41. (java/자바) System.arraycopy 배열 복사 - System.arraycopy 사용해 byte 배열에 저장된 실데이터만 복사하기

투케이2K 2020. 12. 31. 10:43
반응형

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Eclipse

개발 언어 : Java

/* =========================== */

/* =========================== */

[소스 코드]

 

package Al;

import java.util.Arrays;

public class MainActivity27 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[System.arraycopy 배열 복사 - System.arraycopy 사용해 byte 배열에 저장된 실데이터만 복사하기]");
		
		//byte 바이트 배열에 실제로 저장된 데이터 길이를 확인하기 위함
		int read = 0;
		
		//초기 바이트 배열 생성 및 데이터 삽입
		byte one[] = new byte[10]; //10 바이트 길이 배열 생성
		one[0] = 75; //0번지 데이터 삽입
		one[1] = 71; //1번지 데이터 삽입
		one[2] = 72; //2번지 데이터 삽입		
		
		/*[설 명]
		 * 1. byte 바이트 배열을 생성 시 기본적으로 초기 0 데이터가 모두 삽입됩니다 
		 * 2. byte 바이트 배열에서 각 번지 데이터가 0 값이 아닐때 read 길이를 증가시킵니다
		 * 3. 실데이터를 저장할 배열을 생성하고 System.arraycopy 사용해 실데이터를 복사합니다 
		 * 4. System.arraycopy(원본배열,원본읽어올위치,복사배열,복사저장위치,원본읽어올길이)
		 */
		for(int i=0; i<one.length; i++) {
			if(one[i] != 0) {
				read ++;
			}
		}
				
		byte two[] = new byte[read];
		
		//one 배열 0번지 위치부터 read 길이까지 two 배열에 0 번부터 저장하겠다
		System.arraycopy(one, 0, two, 0, read);
		
		System.out.println("원본 : "+Arrays.toString(one));
		System.out.println("실데이터 : "+Arrays.toString(two));
				
	}//메인 종료

}//클래스 종료

/* =========================== */

[결과 출력]

[System.arraycopy 배열 복사 - System.arraycopy 사용해 byte 배열에 저장된 실데이터만 복사하기]

원본 : [75, 71, 72, 0, 0, 0, 0, 0, 0, 0]

실데이터 : [75, 71, 72]

/* =========================== */

/* =========================== */

[요약 설명]

* 1. byte 바이트 배열을 생성 시 기본적으로 초기 0 데이터가 모두 삽입됩니다

* 2. byte 바이트 배열에서 각 번지 데이터가 0 값이 아닐때 read 길이를 증가시킵니다

* 3. 실데이터를 저장할 배열을 생성하고 System.arraycopy 사용해 실데이터를 복사합니다

* 4. System.arraycopy(원본배열,원본읽어올위치,복사배열,복사저장위치,원본읽어올길이)

/* =========================== */

반응형
Comments