Hier ist meine C# Methode zlib-komprimierte Daten und zusätzliche Daten in einen Stream zu schreiben:DeflateStream schließt den Eingangsstrom
using (var compressor = new DeflateStream(compressStream, CompressionMode.Compress)) {
compressor.Write(input, 0, input.Length);
compressor.Close();
compessStream.Write(extraData, 0, extraData.Length);
}
Wenn compressor.Close()
genannt wird, schließt er automatisch den Eingangsstrom. Daher kann ich keine zusätzlichen Daten in den Stream schreiben.
Wenn ich den Kompressor nach dem Schreiben meiner zusätzlichen Daten schließe, ist die Reihenfolge der Daten nicht mehr gültig. Meine zusätzlichen Daten werden vor den komprimierten Daten geschrieben und nicht wie ich es beabsichtigt habe.
Warum schließt DeflateStream.Close()
auch den Eingangsstrom? Gibt es eine Möglichkeit, es zu umgehen, ohne eine Stream-Klasse zu schreiben, die die tatsächliche Stream-Klasse umschließt und verhindert, dass diese geschlossen wird? Grüße.
'neue DeflateStream (compressStream, CompressionMode.Compress, Leaveopen: true)' – PetSerAl