Question

Supposons le code suivant:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);

Si je télécharge un fichier CSV qui est de 10 enregistrements (257 octets), le leader Binary remplit le tableau d'octets avec "0".

J'ai également écrit une boucle pour parcourir la méthode ReadByte du BinaryReader et dans la première itération de la boucle, j'ai reçu l'exception suivante:

Impossible de lire au-delà de la fin du flux

Lorsque j'augmente le fichier CSV à 200 cents records, tout a fonctionné très bien.

La question est alors, pourquoi cela se produit-il sur des fichiers plus petits, et existe-t-il une solution de contournement qui permet la lecture binaire de fichiers plus petits.

Était-ce utile?

La solution

Je ne sais pas pourquoi, mais lorsque vous utilisez BinaryReader sur un flux téléchargé, la position de démarrage doit être explicitement définie.

b.BaseStream.Position = 0;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top