2017-09-26 2 views
-5

J'ai besoin de convertir un array en DataInputStream ou DataOutputStream. Et puis reconvertir à ce type de arraycomment convertir java array en DataInputStream ou DataOutputStream?

+4

Merci de nous faire savoir. Quelle est ta question? Qu'avez-vous essayé? S'il vous plaît lire [Comment puis-je poser une bonne question?] (Https://stackoverflow.com/help/how-to-ask) et [Pourquoi est-ce que quelqu'un peut m'aider? "Pas une question réelle?] (Https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question) – tnw

+1

Souhaitez-vous envoyer le tableau via le flux (utilisez un objet 'Object {Input | Output} Stream', ou en envoyant la longueur du tableau suivi par les éléments du tableau un à la fois), ou capturer les octets du flux dans un tableau 'byte'? – AJNeufeld

Répondre

1

nous avons donc deux parties ici: 1. Conversion byteArray à fluxEntrée:

byte[] byteArr = new byte[] { 0xC, 0xA, 0xF, 0xE }; 
InputStream in = new ByteArrayInputStream(byteArr); 
  1. Et ce est de savoir comment convertir un fluxEntrée à un byteArray (vous pouvez également importer les IOUtils)

    InputStream in;
    octet [] octets = IOUtils.toByteArray (in);

Modifier: si vous avez un byteArray vous devez d'abord le convertir en intarray comme ce

IntBuffer intBuf = 
    ByteBuffer.wrap(byteArray) 
    .order(ByteOrder.BIG_ENDIAN) 
    .asIntBuffer(); 
int[] array = new int[intBuf.remaining()]; 
intBuf.get(array); 
+0

merci pour la réponse. Comment puis-je l'utiliser pour un tableau int? –

+1

J'ai mis à jour la réponse pour vous, je reçois downvotes pour vous avoir répondu, je ne devrais probablement pas, alors s'il vous plaît la prochaine fois essayer quelque chose puis poser la question et ne pas oublier d'accepter ma réponse. –