Anhängt an MemoryStream

7

Ich versuche, einige Daten an einen Stream anzuhängen. Dies funktioniert gut mit FileStream , aber nicht mit MemoryStream aufgrund der festen Puffergröße.

Die Methode, die Daten in den Stream schreibt, wird von der Methode getrennt, die den Stream erzeugt (ich habe es im folgenden Beispiel sehr vereinfacht). Die Methode, die den Stream erstellt, ist sich der Länge der Daten nicht bewusst, die in den Stream geschrieben werden sollen.

%Vor%

Eine Idee, die ich hatte, war, eine erweiterbare MemoryStream an die Funktion zu senden und dann die zurückgegebenen Daten an die vorhandenen Daten anzufügen.

%Vor%

Gibt es bessere (effizientere) Lösungen?

    
Iain Sproat 09.09.2012, 14:23
quelle

1 Antwort

26

Eine mögliche Lösung besteht darin, die Kapazität von MemoryStream nicht zu begrenzen. Wenn Sie nicht im Voraus wissen, wie viele Bytes Sie insgesamt schreiben müssen, erstellen Sie ein MemoryStream mit unspezifizierter Kapazität und verwenden Sie es für beide Schreibvorgänge.

%Vor%

Das wird zweifellos weniger performant sein als das Initialisieren eines MemoryStream von einem byte[] , aber wenn Sie weiterhin in den Stream schreiben müssen, glaube ich, dass es Ihre einzige Option ist.

    
Rotem 09.09.2012, 14:53
quelle

Tags und Links