Java 기본 byte[]를 다양한 데이터 유형으로 변환하는 간단한 예
Java 기본 byte[]를 다양한 데이터 유형으로 변환하는 간단한 예
byte[] 유형을 long, int, double, float, short, cahr, object 및 string 유형으로 변환하는 방법은 다음과 같습니다. 예를 들어,
소켓 개발 과정에서 일반적으로 일부 특정 값(이러한 값은 다양한 Java 유형일 수 있음)을 byte[] 유형으로 변환해야 합니다. 다음 예시를 작성해서 올려 놓았습니다. 자주 읽으시려면
public class TestCase { /** * short到字节数组的转换. */ public static byte[] shortToByte(short number) { int temp = number; byte[] b = new byte[2]; for (int i = 0; i < b.length; i++) { b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp >> 8;// 向右移8位 } return b; } /** * 字节数组到short的转换. */ public static short byteToShort(byte[] b) { short s = 0; short s0 = (short) (b[0] & 0xff);// 最低位 short s1 = (short) (b[1] & 0xff); s1 <<= 8; s = (short) (s0 | s1); return s; } /** * int到字节数组的转换. */ public static byte[] intToByte(int number) { int temp = number; byte[] b = new byte[4]; for (int i = 0; i < b.length; i++) { b[i] = new Integer(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp >> 8;// 向右移8位 } return b; } /** * 字节数组到int的转换. */ public static int byteToInt(byte[] b) { int s = 0; int s0 = b[0] & 0xff;// 最低位 int s1 = b[1] & 0xff; int s2 = b[2] & 0xff; int s3 = b[3] & 0xff; s3 <<= 24; s2 <<= 16; s1 <<= 8; s = s0 | s1 | s2 | s3; return s; } /** * long类型转成byte数组 */ public static byte[] longToByte(long number) { long temp = number; byte[] b = new byte[8]; for (int i = 0; i < b.length; i++) { b[i] = new Long(temp & 0xff).byteValue();// 将最低位保存在最低位 temp = temp // >> 8;// 向右移8位 } return b; } /** * 字节数组到long的转换. */ public static long byteToLong(byte[] b) { long s = 0; long s0 = b[0] & 0xff;// 最低位 long s1 = b[1] & 0xff; long s2 = b[2] & 0xff; long s3 = b[3] & 0xff; long s4 = b[4] & 0xff;// 最低位 long s5 = b[5] & 0xff; long s6 = b[6] & 0xff; long s7 = b[7] & 0xff; // s0不变 s1 <<= 8; s2 <<= 16; s3 <<= 24; s4 <<= 8 * 4; s5 <<= 8 * 5; s6 <<= 8 * 6; s7 <<= 8 * 7; s = s0 | s1 | s2 | s3 | s4 | s5 | s6 | s7; return s; } /** * double到字节数组的转换. */ public static byte[] doubleToByte(double num) { byte[] b = new byte[8]; long l = Double.doubleToLongBits(num); for (int i = 0; i < 8; i++) { b[i] = new Long(l).byteValue(); l = l >> 8; } return b; } /** * 字节数组到double的转换. */ public static double getDouble(byte[] b) { long m; m = b[0]; m &= 0xff; m |= ((long) b[1] << 8); m &= 0xffff; m |= ((long) b[2] << 16); m &= 0xffffff; m |= ((long) b[3] << 24); m &= 0xffffffffl; m |= ((long) b[4] << 32); m &= 0xffffffffffl; m |= ((long) b[5] << 40); m &= 0xffffffffffffl; m |= ((long) b[6] << 48); m &= 0xffffffffffffffl; m |= ((long) b[7] << 56); return Double.longBitsToDouble(m); } /** * float到字节数组的转换. */ public static void floatToByte(float x) { //先用 Float.floatToIntBits(f)转换成int } /** * 字节数组到float的转换. */ public static float getFloat(byte[] b) { // 4 bytes int accum = 0; for ( int shiftBy = 0; shiftBy < 4; shiftBy++ ) { accum |= (b[shiftBy] & 0xff) << shiftBy * 8; } return Float.intBitsToFloat(accum); } /** * char到字节数组的转换. */ public static byte[] charToByte(char c){ byte[] b = new byte[2]; b[0] = (byte) ((c & 0xFF00) >> 8); b[1] = (byte) (c & 0xFF); return b; } /** * 字节数组到char的转换. */ public static char byteToChar(byte[] b){ char c = (char) (((b[0] & 0xFF) << 8) | (b[1] & 0xFF)); return c; } /** * string到字节数组的转换. */ public static byte[] stringToByte(String str) throws UnsupportedEncodingException{ return str.getBytes("GBK"); } /** * 字节数组到String的转换. */ public static String bytesToString(byte[] str) { String keyword = null; try { keyword = new String(str,"GBK"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return keyword; } /** * object到字节数组的转换 */ @Test public void testObject2ByteArray() throws IOException, ClassNotFoundException { // Object obj = ""; Integer[] obj = { 1, 3, 4 }; // // object to bytearray ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = new ObjectOutputStream(bo); oo.writeObject(obj); byte[] bytes = bo.toByteArray(); bo.close(); oo.close(); System.out.println(Arrays.toString(bytes)); Integer[] intArr = (Integer[]) testByteArray2Object(bytes); System.out.println(Arrays.asList(intArr)); byte[] b2 = intToByte(123); System.out.println(Arrays.toString(b2)); int a = byteToInt(b2); System.out.println(a); } /** * 字节数组到object的转换. */ private Object testByteArray2Object(byte[] bytes) throws IOException, ClassNotFoundException { // byte[] bytes = null; Object obj; // bytearray to object ByteArrayInputStream bi = new ByteArrayInputStream(bytes); ObjectInputStream oi = new ObjectInputStream(bi); obj = oi.readObject(); bi.close(); oi.close(); System.out.println(obj); return obj; } }
읽어 주셔서 감사합니다. 모두에게 도움이 되었으면 좋겠습니다. 이 사이트를 지원해 주신 모든 분들께 감사드립니다!
Java 기본 바이트[]와 다양한 데이터 유형 간의 변환에 대한 더 간단한 예를 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

일부 애플리케이션이 제대로 작동하지 않는 회사의 보안 소프트웨어에 대한 문제 해결 및 솔루션. 많은 회사들이 내부 네트워크 보안을 보장하기 위해 보안 소프트웨어를 배포 할 것입니다. ...

많은 응용 프로그램 시나리오에서 정렬을 구현하기 위해 이름으로 이름을 변환하는 솔루션, 사용자는 그룹으로, 특히 하나로 분류해야 할 수도 있습니다.

IntellijideAultimate 버전을 사용하여 봄을 시작하십시오 ...

시스템 도킹의 필드 매핑 처리 시스템 도킹을 수행 할 때 어려운 문제가 발생합니다. 시스템의 인터페이스 필드를 효과적으로 매핑하는 방법 ...

데이터베이스 작업에 MyBatis-Plus 또는 기타 ORM 프레임 워크를 사용하는 경우 엔티티 클래스의 속성 이름을 기반으로 쿼리 조건을 구성해야합니다. 매번 수동으로 ...

Java 객체 및 배열의 변환 : 캐스트 유형 변환의 위험과 올바른 방법에 대한 심층적 인 논의 많은 Java 초보자가 객체를 배열로 변환 할 것입니다 ...

Redis 캐싱 솔루션은 제품 순위 목록의 요구 사항을 어떻게 인식합니까? 개발 과정에서 우리는 종종 a ... 표시와 같은 순위의 요구 사항을 처리해야합니다.

전자 상거래 플랫폼에서 SKU 및 SPU 테이블의 디자인에 대한 자세한 설명이 기사는 전자 상거래 플랫폼에서 SKU 및 SPU의 데이터베이스 설계 문제, 특히 사용자 정의 판매를 처리하는 방법에 대해 논의 할 것입니다 ...
