Exemples simples de bases Java Byte [] se convertir avec divers types de données
Voici un exemple de la conversion des types d'octets [] en type long, int, double, float, court, cahr, objet, types de chaîne,
Pendant le développement de socket, vous devez généralement convertir certaines valeurs spécifiques (ces valeurs peuvent être différents types Java) en type d'octets []. Pour cette raison, j'ai résumé l'exemple suivant et je l'ai publié pour que je puisse le lire fréquemment:
Classe publique TestCase {/ ** * Conversion du tableau court à Byte. * / byte statique public [] shorttoByte (numéro court) {int temp = nombre; octet [] b = nouveau octet [2]; for (int i = 0; i <b.length; i ++) {b [i] = new Integer (temp & 0xff) .ByteValue (); // Enregistrer le bit le plus bas dans le bit le plus bas Temp = temp >> 8; // déplacer 8 bits vers la droite} retour b; } / ** * Conversion du tableau d'octets en short. * / public static court bytetoshort (byte [] b) {short s = 0; court s0 = (court) (b [0] & 0xff); // le bit le plus bas S1 = (court) (b [1] & 0xff); S1 << = 8; S = (court) (S0 | S1); retour s; } / ** * Conversion du tableau int à octet. * / public static byte [] intToByte (int octet [] b = nouveau octet [4]; for (int i = 0; i <b.length; i ++) {b [i] = new Integer (temp & 0xff) .ByteValue (); // Enregistrer le bit le plus bas dans le bit le plus bas Temp = temp >> 8; // déplacer 8 bits vers la droite} retour b; } / ** * Conversion du tableau d'octets en int. * / public static int byteToint (byte [] b) {int s = 0; int s0 = b [0] & 0xff; // le bit le plus bas 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; retour s; } / ** * Convertir le type long en tableau d'octets * / octet statique public [] longtoByte (nombre long) {long temp = nombre; octet [] b = nouveau octet [8]; pour (int i = 0; i <b.length; i ++) {b [i] = new long (temp & 0xff) .ByteValue (); // Enregistrer le bit le plus bas dans le bit le plus bas Temp = temp // >> 8; // déplacer 8 bits vers la droite} retour b; } / ** * Conversion du tableau d'octets en long. * / public static long bytetolong (byte [] b) {long s = 0; long s0 = b [0] & 0xff; // le bit le plus bas S1 = B [1] long S2 = b [2] & 0xff; long s3 = b [3] & 0xff; long s4 = b [4] & 0xff; // le plus bas s5 = b [5] & 0xff; long s6 = b [6] & 0xff; long s7 = b [7] & 0xff; // S0 est inchangé 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; retour s; } / ** * Conversion du tableau double en octet. * / octet statique public [] DoubleToByte (double num) {octet [] b = nouveau octet [8]; long l = double.doubletolongbits (num); for (int i = 0; i <8; i ++) {b [i] = new long (l) .ByteValue (); l = l >> 8; } return b; } / ** * Conversion du tableau d'octets en double. * / public static double getDouble (octet [] b) {long m; m = b [0]; m & = 0xff; m | = ((long) b [1] << 8); m & = 0xffffffff; m | = ((long) b [2] << 16); m & = 0xffffffffff; m | = ((long) b [3] << 24); m & = 0xffffffffffl; m | = ((long) b [4] << 32); m & = 0xffffffffffffl; m | = ((long) b [5] << 40); m & = 0xffffffffffffl; m | = ((long) b [6] << 48); m & = 0xffffffffffffffl; m | = ((long) b [7] << 56); retourner double.longbitstodouble (m); } / ** * Conversion du tableau de float en octet. * / public static void floattoByte (float x) {// convertir float.floattointBits (f) à int} / ** * conversion du tableau d'octet en float. * / public static float getfloat (byte [] b) {// 4 octets int accum = 0; for (int shiftby = 0; shiftby <4; shiftby ++) {accum | = (b [shiftby] & 0xff) << shiftby * 8; } return float.intbitstofloat (accum); } / ** * Conversion du tableau char à octet. * / octet statique public [] chartoByte (char c) {octet [] b = nouveau octet [2]; b [0] = (octet) ((c & 0xff00) >> 8); b [1] = (octet) (c & 0xff); retour b; } / ** * Conversion du tableau d'octets en char. * / public static char bytetochar (byte [] b) {char c = (char) (((b [0] & 0xff) << 8) | (b [1] & 0xff)); Retour C; } / ** * Conversion de la chaîne en tableau d'octets. * / public static octet [] StringToByte (String Str) lève unportdencodingException {return str.getBytes ("gbk"); } / ** * Conversion du tableau d'octet en chaîne. * / public static String byTestoString (byte [] str) {String keyword = null; try {keyword = new String (str, "gbk"); } catch (UnportEnCcodingException e) {e.printStackTrace (); } retour du mot clé; } / ** * Conversion de l'objet vers le tableau d'octet * / @Test public void testObject2ByTearray () lève ioException, classNotFoundException {// objet obj = ""; Entier [] obj = {1, 3, 4}; // // Objectif à bytearray bytearrayoutputStream bo = new bytearrayoutputStream (); ObjectOutputStream oo = new ObjectOutputStream (bo); oo.writeObject (obj); octet [] bytes = bo.toByTearray (); bo.Close (); oo.close (); System.out.println (arrays.tostring (octets)); Entier [] intarr = (entier []) TestByteArray2Object (Bytes); System.out.println (arrays.aslist (intarr)); octet [] b2 = intToByte (123); System.out.println (arrays.tostring (B2)); int a = byteToint (b2); System.out.println (a); } / ** * Conversion du tableau d'octets en objet. * / objet privé TestByTearray2Object (byte [] bytes) lève ioException, classNotFoundException {// byte [] bytes = null; Objet obj; // bytearray à l'objet bytearrayInputStream bi = new bytearrayInputStream (octets); ObjectInputStream oi = new ObjectInputStream (BI); obj = oi.readObject (); bi.close (); oi.close (); System.out.println (OBJ); retour obj; }}Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!