StreamReader.ReadToEnd () gibt eine leere Zeichenfolge zurück

8

Ich habe eine Methode

%Vor%

Ich habe Text mit GZipped als Eingabe und das Ergebnis soll eine String-Darstellung dieses Textes sein. Das Problem ist, dass die Methode eine leere Zeichenfolge zurückgibt. Was mich verwirrt, ist, dass, wenn ich die Methode im Debug-Modus durchlaufen und die return-Anweisung erreiche, die Ergebnisvariable eine leere Zeichenfolge ist, aber wenn ich eine Überwachung für den dekomprimierten.ReadToEnd () -Ausdruck anlege, gibt sie mir den Text zurück. Was ich an dieser Stelle erwarten würde, ist die Ergebnisvariable, die den Text enthält, und der dekomprimierte.ReadToEnd () - Ausdruck, der eine leere Zeichenfolge auswertet. (Das erneute Auswerten des dekomprimierten.ReadToEnd () - Ausdrucks gibt eine leere Zeichenfolge wie erwartet zurück.)

@Edit: Ich habe festgestellt, dass in meinem Fall ReadToEnd () den Text beim zweiten Aufruf zurückgibt und leere Strings auf dem ersten zurückgibt Anruf und nach dem zweiten Anruf.

Es muss etwas offensichtlich sein, dass ich hier vermisse.

    
axk 03.04.2010, 22:59
quelle

3 Antworten

21

Ich denke, dein Problem ist die Position des Zeigers im Dampf. Jedes Mal, nachdem Sie ReadToEnd ausgeführt haben, wird der Zeiger auf das Ende gesetzt, weshalb Sie ihn das erste Mal ansehen können.

Führen Sie den folgenden Code vor ReadToEnd aus, um den Zeiger an den Anfang zu setzen. someStream.Seek(0, SeekOrigin.Begin)

    
Fuji 08.08.2010, 23:05
quelle
1

"Da muss etwas offensichtlich sein, dass ich hier vermisse." - vielleicht, und ich auch ;-)
Lassen Sie uns mit einem kleinen Beispiel beginnen und sehen, wo es sich von Ihrem tatsächlichen Code unterscheidet.

%Vor%

druckt Mary had a little lamb.

    
VolkerK 03.04.2010 23:25
quelle
1

Erstellen Sie Ihre eigene benutzerdefinierte Funktion. Es wird den Pfad als Parameter nehmen:

%Vor%

Rufen Sie es dann anstelle des Aufrufs von ReadToEnd() auf. Ich habe es getestet und es hat funktioniert.

    
stackptr 17.04.2014 15:38
quelle

Tags und Links