Aller au contenu

Comportement bizarre FileInputStream


dahwoud

Recommended Posts

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Archivé

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

×
×
  • Créer...