Exemplos simples de Java Basics Byte [] se convertendo com vários tipos de dados
Aqui está um exemplo da conversão de tipos de byte [] para longos, int, duplos, flutuantes, curtos, cahr, objeto, tipos de string,
Durante o desenvolvimento do soquete, você geralmente precisa converter alguns valores específicos (esses valores podem ser vários tipos de Java) no tipo byte []. Por esse motivo, resumi o exemplo a seguir e o publiquei para poder lê -lo com frequência:
classe pública Testcase { /*** Conversão de matriz de bytes curta para bytes. */ public static byte [] shortTobyte (número curto) {int temp = número; byte [] b = novo byte [2]; para (int i = 0; i <B.Length; i ++) {b [i] = novo número inteiro (temp & 0xff) .bytevalue (); // salve o bit mais baixo no menor tempo de bit = temp >> 8; // mova 8 bits para a direita} retornar b; } /*** Conversão da matriz de bytes para curta. */ public static curto bytetoshort (byte [] b) {short s = 0; curto s0 = (curto) (b [0] e 0xff); // o menor bit stram s1 = (curto) (b [1] e 0xff); s1 << = 8; s = (curto) (S0 | S1); retorno s; } /*** Conversão de int para a matriz de bytes. */ public static byte [] inttobyte (número int) {int temp = número; byte [] b = novo byte [4]; para (int i = 0; i <B.Length; i ++) {b [i] = novo número inteiro (temp & 0xff) .bytevalue (); // salve o bit mais baixo no menor tempo de bit = temp >> 8; // mova 8 bits para a direita} retornar b; } /*** Conversão da matriz de bytes para int. */ public static int byteToint (byte [] b) {int s = 0; int s0 = b [0] & 0xff; // o bit mais baixo int s1 = b [1] & 0xff; int s2 = b [2] e 0xff; int s3 = b [3] e 0xff; s3 << = 24; s2 << = 16; s1 << = 8; s = s0 | S1 | S2 | S3; retorno s; } / *** Converta o tipo longo em matriz de bytes* / public static byte [] longTobyte (número longo) {long temp = número; byte [] b = novo byte [8]; para (int i = 0; i <B.Length; i ++) {b [i] = novo longo (temp & 0xff) .bytevalue (); // salve o bit mais baixo no menor tempo de bit = temp // >> 8; // mova 8 bits para a direita} retornar b; } /*** Conversão da matriz de bytes para longa. */ public static long bytetolong (byte [] b) {long s = 0; long s0 = b [0] & 0xff; // o menor bit longo s1 = b [1] long s2 = b [2] & 0xff; S3 longo = b [3] e 0xff; longo s4 = b [4] e 0xff; // o menor bit longo s5 = b [5] e 0xff; longo s6 = b [6] e 0xff; longo s7 = b [7] e 0xff; // s0 é inalterado s1 << = 8; s2 << = 16; s3 << = 24; s4 << = 8 * 4; s5 << = 8 * 5; s6 << = 8 * 6; S7 << = 8 * 7; S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7; retorno s; } /*** Conversão de matriz dupla para byte. */ public static byte [] DOUBLETOBYTE (Double num) {byte [] b = novo byte [8]; long l = duplo.doubleTolongbits (num); for (int i = 0; i <8; i ++) {b [i] = novo long (l) .byteValue (); l = l >> 8; } retornar b; } /*** Conversão da matriz de bytes para dobrar. */ public static duplo getDouble (byte [] b) {long m; m = b [0]; m & = 0xff; m | = ((longo) B [1] << 8); m & = 0xffffffff; m | = ((longo) B [2] << 16); m & = 0xffffffffff; m | = ((longo) B [3] << 24); m & = 0xfffffffffl; m | = ((longo) B [4] << 32); m & = 0xfffffffffffl; m | = ((longo) b [5] << 40); m & = 0xfffffffffffl; m | = ((longo) b [6] << 48); m & = 0xffffffffffffffl; m | = ((longo) B [7] << 56); retornar duplo.longbitstodouble (m); } /*** Conversão de flutuação para matriz de bytes. * /public static void floattobyte (float x) {// converte float.floattointbits (f) para int} /*** conversão da matriz de bytes para flutuar. */ 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); } /*** Conversão de Char para Byte Array. */ public static byte [] ChartObyte (char c) {byte [] b = novo byte [2]; b [0] = (byte) ((c & 0xff00) >> 8); b [1] = (byte) (c & 0xff); retornar b; } /*** Conversão da matriz de bytes para char. */ public static char bytetoChar (byte [] b) {char c = (char) (((b [0] e 0xff) << 8) | (b [1] e 0xff)); retornar c; } /*** Conversão de string para matriz de bytes. */ public static byte [] stringtobyte (string str) lança UnsupportEdEncodingException {return str.getBytes ("gbk"); } /*** Conversão da matriz de bytes em string. */ public static string bytestoString (byte [] str) {string keyword = null; tente {keyword = new string (str, "gbk"); } Catch (UnsupportEdEncodingException e) {E.PrintStackTrace (); } retornar palavra -chave; } / *** Conversão de objeto para BYTE Array* / @Test public void testObject2ByTearray () lança IoException, ClassNotFoundException {// objeto obj = ""; Número inteiro [] obj = {1, 3, 4}; // // objeto para 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); } /*** Conversão da matriz de bytes em objeto. */ Objeto privado TestByTearray2Object (byte [] bytes) lança ioexception, classNotFoundException {// byte [] bytes = null; Objeto obj; // bytearray para objetar bytearrayInputStream bi = novo byteArrayInputStream (bytes); ObjectInputStream oi = new ObjectInputStream (BI); obj = oi.readObject (); bi.close (); oi.close (); System.out.println (obj); retornar obj; }}Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!