바이트 배열 변환
Java는 바이트 배열을 문자열로 또는 그 반대로 변환하는 다양한 방법을 제공합니다. 이 변환은 데이터 전송 및 조작에 중요합니다. 일반적인 시나리오 중 하나는 네트워크를 통해 바이트 데이터를 전송하고 수신 측에서 이를 재구성하는 것입니다.
바이트 배열을 문자열로 변환
바이트 배열을 문자열로 변환하려면, Arrays.toString() 메서드를 사용할 수 있습니다. 배열을 입력으로 사용하고 대괄호로 묶인 해당 요소의 문자열 표현을 반환합니다. 예:
byte[] data = new byte[] {4, 6, 8, 10}; String dataString = Arrays.toString(data); // prints [-44, 6, 8, 10]
문자열을 바이트 배열로 변환
그러나 이 문자열 표현은 바이트 배열로 다시 직접 변환할 수 없습니다. 이를 달성하려면 문자열에서 개별 바이트 값을 구문 분석해야 합니다. 한 가지 접근 방식은 String.split() 메서드를 사용하여 바이트 값을 분리한 다음 Byte.parseByte() 메서드를 사용하여 구문 분석하는 것입니다.
String response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]"; String[] byteValues = response.substring(1, response.length() - 1).split(","); byte[] bytes = new byte[byteValues.length]; for (int i = 0, len = bytes.length; i < len; i++) { bytes[i] = Byte.parseByte(byteValues[i].trim()); }
대체 솔루션
또는 ByteBuffer 클래스를 사용하여 바이트 배열 변환을 효율적으로 수행할 수 있습니다. 이는 바이트 배열에서 버퍼를 생성하는 Wrap() 및 버퍼에서 기본 바이트 배열을 검색하는 array()와 같은 메서드를 제공합니다.
byte[] data = new byte[] {4, 6, 8, 10}; ByteBuffer buffer = ByteBuffer.wrap(data); byte[] dataCopy = buffer.array(); // returns a copy of the original byte array
참고: Arrays.toString () 메서드는 int, double 및 long과 같은 기본 배열과 함께 사용하여 해당 요소의 문자열 표현을 생성할 수도 있습니다. 그러나 기본 유형의 배열로 다시 변환하려면 언어별로 다르며 유형에 따라 달라지는 추가 구문 분석 메커니즘이 필요합니다.
위 내용은 Java에서 바이트 배열을 문자열로 또는 그 반대로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!