Notice
Recent Posts
Recent Comments
Link
투케이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(원본배열,원본읽어올위치,복사배열,복사저장위치,원본읽어올길이)
/* =========================== */
반응형
'Java' 카테고리의 다른 글
Comments