Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 38466|Antwort: 0

[Tipps] Wie man einen Stream in einer Datei in C#/.NET speichert

[Link kopieren]
Veröffentlicht am 16.05.2021, 21:12:58 | | |
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)




Vorhergehend:NPOI Operation Excel Detaillierte Erklärung
Nächster:X-Forwarded-For mehrere IP-Adressen im HTTP-Anforderungsheader
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com