Tableau d'octets Java en chaîne et retour en tableau d'octets
En Java, la conversion d'un tableau d'octets en chaîne est une tâche courante. Cependant, il est crucial de comprendre que cela implique deux opérations : convertir un tableau d'octets en une représentation sous forme de chaîne, puis de nouveau en un tableau d'octets. Cet article vise à clarifier ce processus.
Conversion d'un tableau d'octets en chaîne
La méthode Arrays.toString() est couramment utilisée pour obtenir une représentation sous forme de chaîne d'un octet tableau. Par exemple, si nous avons un tableau d'octets contenant les valeurs [-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97], appeler Arrays.toString(data.toByteArray()) donnerait :
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
Cette représentation sous forme de chaîne peut être envoyée sur un réseau ou stockée dans une base de données.
Conversion de la chaîne en tableau d'octets
Lors de la réception de la représentation sous forme de chaîne à la réception, il est nécessaire de la reconvertir en un tableau d'octets. Cela implique d'analyser la chaîne et de reconstruire le tableau d'octets.
Une façon d'aborder cela consiste à utiliser la méthode byteValues(), qui prend une chaîne comme "[-47, 1, 16, 84, 2, 101 , 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]" et renvoie un tableau de chaînes :
[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]
Chaque élément de ce Le tableau représente une valeur d'octet. Pour reconvertir cela en un tableau d'octets, vous pouvez utiliser une boucle pour parcourir les chaînes, les analyser en octets et les stocker dans un nouveau tableau d'octets.
Exemple de code
Le script Python suivant illustre la gestion côté serveur des données reçues du client :
response = "[-47, 1, 16, 84, 2, 101, 110, 83, 111, 109, 101, 32, 78, 70, 67, 32, 68, 97, 116, 97]" # Placeholder response from the client byte_values = response.substring(1, response.length() - 1).split(",") # Convert the string values to bytes bytes = bytearray([int(byte_value.strip()) for byte_value in byte_values]) # Send the bytes back to the client
Remarque :
N'oubliez pas que lorsque Arrays. toString() convertit un tableau d'octets en chaîne, il perd les informations de type de données d'origine. Par conséquent, pour reconvertir correctement la chaîne en un tableau d'octets, vous devez analyser soigneusement la chaîne et reconstruire manuellement le tableau d'octets à l'aide des méthodes appropriées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!