Java에서 바이트 배열을 Long으로 변환: 종합 가이드
Long 데이터 유형과 바이트 배열 간 변환은 Java 프로그래밍의 기본 작업입니다. 특히 네트워크를 통해 데이터를 교환하거나 바이너리 형식으로 저장할 때 그렇습니다. 이 문서에서는 이 변환을 효과적으로 수행하기 위한 다양한 방법에 대해 설명합니다.
Long을 바이트 배열로 변환
Long 값을 바이트 배열로 변환하려면 다음을 사용할 수 있습니다. 접근 방식:
<code class="java">public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.putLong(x); return buffer.array(); }</code>
이 코드에서는 Long 값을 나타내는 데 필요한 바이트 수와 동일한 크기로 ByteBuffer 객체가 할당됩니다. putLong 메소드는 Long 값을 버퍼에 쓰는 데 사용되며, 마지막으로 array 메소드는 기본 바이트 배열 표현을 검색합니다.
바이트 배열을 Long으로 변환
역변환을 수행하려면 다음 코드를 사용할 수 있습니다.
<code class="java">public long bytesToLong(byte[] bytes) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.put(bytes); buffer.flip(); // Flip the buffer to make it ready for reading return buffer.getLong(); }</code>
여기서 ByteBuffer 개체가 다시 사용되며, 이번에는 제공된 바이트 배열을 래핑합니다. put 메소드는 바이트를 버퍼에 복사한 후 버퍼를 뒤집어 이제 읽을 준비가 되었음을 나타내는 데 사용됩니다. 마지막으로, getLong 메소드는 버퍼에서 긴 값을 검색합니다.
반복적인 ByteBuffer 생성 방지
여러 변환이 수행되는 시나리오의 경우 생성을 방지하는 것이 더 효율적입니다. 각 변환에 대한 새로운 ByteBuffer 객체. 이는 프로세스를 클래스로 래핑하여 달성할 수 있습니다.
<code class="java">public class ByteUtils { private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); public static byte[] longToBytes(long x) { buffer.putLong(0, x); return buffer.array(); } public static long bytesToLong(byte[] bytes) { buffer.put(bytes, 0, bytes.length); buffer.flip(); return buffer.getLong(); } }</code>
이 경우 단일 ByteBuffer 객체가 모든 변환에서 공유되어 객체 생성 오버헤드를 최소화합니다.
결론
이 기사에 설명된 방법은 Java에서 긴 값과 바이트 배열 사이를 변환하는 효율적이고 안정적인 방법을 제공합니다. directByteBuffer 접근 방식을 선택하든 ByteUtils 래퍼를 활용하든 애플리케이션에서 이러한 변환을 자신 있게 처리할 수 있습니다.
위 내용은 Java에서 바이트 배열을 Long으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!