Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 38466|Antwoord: 0

[Tips] Hoe sla je een stream op in een bestand in C#/.NET

[Link kopiëren]
Geplaatst op 2021-5-16 21:12:58 | | |
Ik heb online wat blogposts bekeken over het opslaan van Stream in een bestand,Veel daarvan zijn onjuist。 (Ik vond verschillende problemen: slechte prestaties, abnormaal wanneer de stream te groot is)

Na het krijgen van een stream, hoe sla je deze stream elegant op in code op

De meest elegante methode zou de methode CopyTo of CopyToAsync moeten zijn


hier inputStream.Seek(0, SeekOrigin.Begin); Niet per se, gebruik deze code alsjeblieft volgens je eigen behoeften, zoals dat je alleen de stream van de tiende byte hoeft te kopiëren, enzovoort

Het gebruik van de asynchrone benadering duurt iets langer voor deze schrijf, maar het geeft de algehele prestaties beter en stelt de CPU in staat andere taken uit te voeren




Let op: bij het gebruik van CopyToAsync, vergeet dan niet om 'wait' toe te voegen; bij het uitvoeren van deze code geef je de uitvoering over aan IO, de meeste IO-verwerking vereist geen CPU om te berekenen, waardoor de algehele prestaties beter kunnen zijn

Ook, als de iputStream van buitenaf binnenkomt, raad ik niet aan om hem op deze manier binnen vrij te geven, waarom? Ik gebruikte een goede stream en die werd gestopt toen ik in een bedrijf overviel

De tweede methode is om zelf de geheugenreplicatiecache te beheren, die een extra geheugenkopie bevat


Wat deze methode doet, is je in staat stellen de waarde van een nieuwe byte[1024] aan te passen, waardoor je controle krijgt over de gekopieerde cache

De volgende zijn enkele methoden die niet worden aanbevolen, maar ze zijn handig bij het schrijven


De bovenstaande methode kopieert het geheugen twee keer, en als de inputresource lengte 1G is, neemt het 2G aan resources in beslag

Vergelijkbaar met het bovenstaande is het aanvragen van een grote cache, zoals te zien is in de volgende code


Qua efficiëntie en code-elegantie zijn ze eigenlijk inferieur aan de CopyTo-methode, en dat ook door de stream. Lengte als lengte bepaalt de cache niet, dus het is niet zo goed als de tweede methode

Hieronder staat een super trage methode, één byte bij één byte schrijven is super traag


Overgedragen van:De hyperlink-login is zichtbaar.
(Einde)




Vorig:NPOI Operatie Excel Gedetailleerde Uitleg
Volgend:X-Forwarded-Voor meerdere IP-adressen in de HTTP-verzoekheader
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com