Ich habe mir einige Blogbeiträge online angeschaut, wie man Stream in einer Datei speichern kann,Viele sind falsch。 (Ich habe mehrere Probleme festgestellt: schlechte Leistung, ungewöhnlich, wenn der Strom zu groß ist.)
Nachdem man einen Stream erhalten hat, wie man diesen Stream elegant im Code speichert
Die eleganteste Methode sollte die Methode von CopyTo oder CopyToAsync sein
hier inputStream.Seek(0, SeekOrigin.Begin); Nicht unbedingt, bitte verwenden Sie diesen Code nach Ihren eigenen Bedürfnissen, zum Beispiel müssen Sie nur den Stream vom 10. Byte kopieren usw
Die Verwendung des asynchronen Ansatzes dauert bei diesem Schreiben etwas länger, aber er verbessert die Gesamtleistung und ermöglicht es der CPU, andere Aufgaben zu übernehmen
Beachten Sie, dass Sie bei Verwendung von CopyToAsync daran denken sollten, await hinzuzufügen; beim Ausführen dieses Codes übergeben Sie die Ausführung an IO, die meisten IO-Verarbeitungen benötigen keine CPU zur Berechnung, sodass die Gesamtleistung besser sein kann
Außerdem, wenn der iputStream von außen hereinkommt, empfehle ich nicht, ihn auf diese Weise im Inneren freizugeben – warum? Ich habe einen guten Stream benutzt und der wurde beendet, als ich in einem Geschäft vorbeigefallen bin.
Die zweite Methode besteht darin, den Speicher-Replikationscache selbst zu steuern, der eine zusätzliche Speicherkopie enthält
Diese Methode erlaubt es Ihnen, den Wert eines neuen Bytes[1024] zu ändern, wodurch Sie die Kontrolle über den kopierten Cache erhalten
Im Folgenden sind einige Methoden, die nicht empfohlen werden, aber beim Schreiben praktisch sind
Die obige Methode kopiert den Speicher zweimal, und wenn die Eingaberessourcenlänge 1G beträgt, belegt er 2G an Ressourcen
Ähnlich wie oben ist, einen großen Cache anzufordern, wie im folgenden Code gezeigt
Was Effizienz und Code-Eleganz betrifft, sind sie tatsächlich der CopyTo-Methode unterlegen, und zwar wegen des Stroms. Länge als Länge bestimmt den Cache nicht, daher ist er nicht so gut wie die zweite Methode
Unten ist eine super langsame Methode, das Schreiben von einem Byte mal eins Byte ist sehr langsam
Übertragen von:Der Hyperlink-Login ist sichtbar. (Ende)
|