Frage

Nehmen Sie den folgenden Code an:

Stream file = files[0].InputStream;

var FileLen = files[0].ContentLength;

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

Wenn ich eine CSV-Datei mit 10 Datensätzen (257 Byte) hochlade, füllt der BinaryReader das Array von Bytes mit "0".

Ich habe auch eine Schleife geschrieben, um die ReadByte-Methode des BinaryReader zu durchlaufen, und in der ersten Iteration der Schleife habe ich die folgende Ausnahme erhalten:

Kann nicht über das Ende des Streams hinaus lesen

Wenn ich die CSV-Datei auf 200 Datensätze erhöhe, hat alles einwandfrei funktioniert.

Die Frage ist dann, warum dies bei kleineren Dateien geschieht und ob es eine Problemumgehung gibt, die das binäre Lesen kleinerer Dateien ermöglicht.

War es hilfreich?

Lösung

Ich weiß nicht warum, aber wenn Sie BinaryReader für einen hochgeladenen Stream verwenden, muss die Startposition explizit festgelegt werden.

b.BaseStream.Position = 0;

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top