본문

JAVA byte[] 배열 복사/더하기

반응형

# JAVA byte[] 배열 복사/더하기


바이트 배열 복사시, System.arraycopry를 사용하면 가변의 배열 생성 때 마다, ArrayIndexOutOfBoundsException을 피하기 위한 알고리즘을 구현하기위해 골머리를 쓰게된다. 


Hex String을 사용하면 정서적으로 편안해 질 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
String hexString = "";
...
 
hexString += Hex.decode(bytevalue);
 
...
 
// hex string -> byte array
byte[] totalByteVale = new java.math.BigInteger(hexString, 16).toByteArray();
 
...
 
// byte -> hex string
public static String decode(byte[] data) { 
    if(data == null)
        return "";
 
    int l = data.length
    char[] out = new char[l << 1]; 
 
    // two characters form the hex value.  
    for (int i = 0, j = 0; i < l; i++) { 
        out[j++] = DIGITS[(0xF0 & data[i]) >>> 4 ]; 
        out[j++] = DIGITS[ 0x0F & data[i] ]; 
    } 
 
    return new String(out);
}





P.S.
hex string <-> byte array 변환 (http://ecogeo.tistory.com/129)


반응형

공유

댓글