dahwoud Posted November 18, 2010 Share Posted November 18, 2010 Salut. je souhaite lire le contenu d'un fichier plat octet par octet en pièce jointe. J'utilise la méthode read(byte[] buffer) de FileInputStream. En consultant la valeur de chaque byte en debug via eclipse / emulator ou eclipse /desire, j'obtiens des résultats assez bizarre, je m'explique. le premier caractère que je lis est £, qui donne 163 en décimal / A3 en hexadécimal, alors qu'en consultant le même fichier avec un éditeur hexadécimal sur mon poste de dev, j'obiens bien la valeur décimal de l'octet associé au caractère £. Le problème se produit dès qu'un caractère à une valeur décimal > 127. Avez-vous une piste pour m'expliquer ce comportement ? Ci-dessous le code exécuté, sample.txt est en pièce jointe au post. byte[] bytes = new byte[512]; FileInputStream stream = new FileInputStream("/sdcard/sample.txt"); stream.read(bytes); Merci Link to comment Share on other sites More sharing options...
houmiak Posted November 18, 2010 Share Posted November 18, 2010 Je ne comprend pas ton problème. 163 (0xA3) correspond bien au caractère £. Tu obtiens qqch de différent? Salut. je souhaite lire le contenu d'un fichier plat octet par octet en pièce jointe. J'utilise la méthode read(byte[] buffer) de FileInputStream. En consultant la valeur de chaque byte en debug via eclipse / emulator ou eclipse /desire, j'obtiens des résultats assez bizarre, je m'explique. le premier caractère que je lis est £, qui donne 163 en décimal / A3 en hexadécimal, alors qu'en consultant le même fichier avec un éditeur hexadécimal sur mon poste de dev, j'obiens bien la valeur décimal de l'octet associé au caractère £. Le problème se produit dès qu'un caractère à une valeur décimal > 127. Avez-vous une piste pour m'expliquer ce comportement ? Ci-dessous le code exécuté, sample.txt est en pièce jointe au post. byte[] bytes = new byte[512]; FileInputStream stream = new FileInputStream("/sdcard/sample.txt"); stream.read(bytes); Merci Link to comment Share on other sites More sharing options...
dahwoud Posted November 18, 2010 Author Share Posted November 18, 2010 En fait je devrais lire 163 et je lis 111. Merci Link to comment Share on other sites More sharing options...
houmiak Posted November 19, 2010 Share Posted November 19, 2010 Le byte est un type qui prend une valeur de -128 à +127. Ceci pourrai donc bien expliquer ton problème. En fait je devrais lire 163 et je lis 111. Merci Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.