bonjour ,
J'ai un petit sousis dans la lescture d'un fichier binaire
Je lit les 2 premieres bytes de mon fichier
byte[] byteMoteur = new byte[2]; is.read(byteMoteur);
Dans mon byte il y a [2,0] ce qui correspond a 02 00 de mon fichier
je n'arrive pas a recuperer la valeur en entier
quand je faire
int I = is.read(byteMoteur);
il m'affiche 2 alors qu'il s'agit de la valeur 512
Quelqu'un purrait il me mettre sur la voi :D
read retourne le nombre de byte lu au lieu de la valeur ;) (si c'est pas ça alors je suis fini pour l'anglais)
T'as 0x02 et 0x00 soit 2 bytes :arrow: donc ton code est bon dans le sens où il fait ce que tu lui demande et pas ce que tu veux faire.
dont pour obtenir tes valeurs tu peux faire quelque chose de bourrin :
int val = ((int)b[0])<<8 + (int)b[1];
Enfin c'est pas jolie du tout mais ça me faisait plaisir de faire "hurler" fredericmazue :lol:
Pas sûr que ça soit ça le problème. Remarque ça pourrait :lol:
Mais il dit "Dans mon byte il y a [2,0] ". Je crois qu'il faut comprendre dans le tableau de bytes.
:lol:
Oui c'est pas joli. Mais si vraiment c'est un fichier binaire c'est
ça qu'il faut faire.
Maintenant je trouve bizarre son [2,0]. Ca voudrait dire que c'est codé en Big Endian, et sous Linux et Windows, normalement on a du Little Endian (le contraire donc). Donc il n'est peut être pas si "binaire" que ça son fichier... affaire à suivre...
Salut j'ai utiliser ca et ca marche bien
Selon le bon vieux principe "Pourquoi faire simple quand on peut faire compliqué." :lol:
k-lo t'a donné une solution en une ligne de code efficace et tu préfères une solution en 11 lignes (*) et horriblement coûteuse en perfomance et ressources à l'exécution. :lol:
C'est bien, c'est tout l'esprit Java
C'est jrebillat qui va être content. :lol:
(*) lignes comptées après l'appel à read et après le test bytes==null