memcpy() -> Java code 변환 문제

khk의 이미지

Unix기반 C언어로 된 기존의 프로그램을 Java로 Conversion을 해야하는 상황인데 다른 건 몰라도 포인터 사용 부분이 영 깝깝하네요.

unsigned char buffer[2048];
int id;

... 생략 ...

memcpy(buffer+2, &id, sizeof(int));

memcpy(buffer+2, &id, sizeof(int)); 이 부분을 Java에서는
어떻게 처리를 해야 할까요. 비트 연산으로 쪼개서 처리하면 될 것 같긴 한데...
좋은 솔루션이 있으면 좀 알려주세요~~~

thepath의 이미지

배열을 초기화할 때는 Arrays 클래스의 fill 메소드를 사용하시면 됩니다.

참고 링크
자바 API
http://java.sun.com/j2se/1.4.2/docs/api/
Arrays 부분
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Arrays.html

khk의 이미지

제 글이 충분치 않았나보네요.
배열을 초기화하는 문제가 아니구요...
이미 id 라는 int 변수에 값이 할당되어 있고
이 int 변수(4 byte)를 buffer+2부터 buffer+5까지 4byte에 끼워 넣는 것입니다.

wizet99의 이미지

정확히 원하신 건지는 모르겠지만.. 제가 고민했던거랑 비슷한거 같기도 해서.

  public static byte[] intToBytes(int i) {
    byte[] bytes = new byte[4];
    bytes[3] = (byte)(i & 0x000000ff);
    bytes[2] = (byte)((i & 0x0000ff00) >>> 8);
    bytes[1] = (byte)((i & 0x00ff0000) >>> 16);
    bytes[0] = (byte)((i & 0xff000000) >>> 24);
    return bytes;
  }

일단 byte array로 바꾼후 System.arraycopy를 사용하면 되지 않을까요..