copier dans une case d'un tableau d'entier 4 bytes

copier dans une case d'un tableau d'entier 4 bytes - Java - Programmation

Marsh Posté le 06-11-2005 à 10:10:36    

Bonjour,
 
Je voulais vous demander un renseignement.
En fait, pour un devoir, j'aurai besoin de lire à partir d'un message représenté sus forme de fichier par exemple, 32 bits, et chaque mot de 32 bits doit être stocké dans une case d'un tableau d'entier.
 
e problème que j'ai, c'est que quand je fais un is.read(), is étant un InputStream, il ne me récupère qu'un byte cad un octet.
 
J'ai donc pensé à cette solution:
 
A chaque itération de ma boucle, j'écris les 4 premiers octets dans un tableau de bytes temporaire comme ceci:
 
for ( int k = 0; k < 4; k++)
{
    byte[k]= is.read();  
}
 
et le but, serait par exemple, de copier dans la case i de mon buffer X (le buffer X etant un tableau d'entiers), le contenu des 4 cases du tableau de byte, comme ca j'aurai bien dans chaque X[i], les 32 1ers bits de mon message (donc la taille d'un int).
 
Quelqu'un aurait t'il une solution?
 
Je vous remercie.
 
A+

Reply

Marsh Posté le 06-11-2005 à 10:10:36   

Reply

Marsh Posté le 06-11-2005 à 14:24:43    

et jeter un oeil à la javadoc c trop compliqué?
http://java.sun.com/j2se/1.4.2/doc [...] #read(byte[])
boulet


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-11-2005 à 14:36:11    

Oui, mais ils mettent cela:
 
 read(byte[] b)
          Reads some number of bytes from the input stream and stores them into the buffer array b.
 
mais pour moi ca veut dire que depuis l'input stream, ca lit un nombre de bytes que ca met dans le tableau de bytes.
 
Moi ce que je voudrais c'est qu'à partir de ce tableau de bytes, qu'il puisse copier le contenu de 4 cases pour faire 4 bytes et donc 32 bits, et mettre ca dans une case d'un tableau de int.
 
Merci
A+


Message édité par thierry_b le 06-11-2005 à 14:39:31
Reply

Marsh Posté le 06-11-2005 à 14:42:22    

au temps pour moi  
à priori il te reste soit à jouer avec la serialization (parce que ton int[] tu en fais quoi, apres??) ou bien à calculer ton int toi meme a partir des 4 bytes ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 06-11-2005 à 14:49:54    

Code :
  1. for ( int k = 0; k < 4; k++)
  2. {
  3.     tesInts[i]= tesInts[i] << is.read() ; 
  4. }


?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-11-2005 à 15:24:31    

Ok.
Merci :-)
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed