2017-05-22 3 views
-3

Comment ajouter un tableau long à un tableau d'octets en Java?Comment ajouter un tableau long à un tableau d'octets en Java

Je voudrais convertir le long en octets, puis l'ajouter au tableau d'octets.

byte[] combined; 

long number; 
byte[] bytes = {...} 

combined = ??? 
+5

Que voulez-vous dire par concat? –

+0

pouvez-vous s'il vous plaît expliquer quelle sortie vous attendez –

+0

Ces deux types ne sont pas compatibles pour être ajoutés ensemble, et ce n'est pas non plus une concaténation. –

Répondre

1

Une approche consiste à utiliser ByteBuffer de NIO:

byte[] bytes = ... 
long number = ... 
ByteBuffer buf = ByteBuffer.allocate(bytes.length+8); 
buf.put(bytes); 
buf.putLong(number); 
byte[] result = buf.array(); 

Vous allouez la mémoire tampon de longueur suffisante, puis copiez le tableau auquel vous souhaitez ajouter une représentation d'octets de votre valeur long, puis appelez myLong pour l'ajouter à la baie. L'appel buf.array() récupère le résultat du tampon.

-3

disons juste que votre tableau d'octets est de taille n. Maintenant faites juste cela, octets [n + 1] = nombre; combiné [] = octets [];

+0

Non seulement 'bytes [n + 1]' (et 'bytes [n]' d'ailleurs) donnera 'IndexOutOfBoundsException', vous ne pouvez pas ajouter de tableau' long' à 'byte'. – Guy

+0

merci l'homme, pour partager cela avec moi –