Aller au contenu

Comportement bizarre FileInputStream


dahwoud

Recommended Posts

Posté(e)

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

Posté(e)

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

Posté(e)

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...