See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 38466|Vastuse: 0

[Nõuanded] Kuidas salvestada voog faili C#/.NET-is

[Kopeeri link]
Postitatud 2021-5-16 21:12:58 | | |
Vaatasin mõningaid blogipostitusi internetis, kus räägiti Streami salvestamisest faili,Paljud neist on valed。 (Leidsin mitmeid probleeme: kehv jõudlus, ebatavaline, kui voog on liiga suur)

Pärast Streami saamist kuidas seda voogu elegantselt koodi salvestada

Kõige elegantsem meetod peaks olema CopyTo või CopyToAsync meetod


siin inputStream.Seek(0, SeekOrigin.Begin); Mitte tingimata, palun kasuta seda koodi vastavalt oma vajadustele, näiteks pead kopeerima voogu ainult 10. baidilt jne

Asünkroonse lähenemise kasutamine võtab selle kirjutamise jaoks veidi kauem aega, kuid annab üldise jõudluse paremaks ja võimaldab protsessoril täita muid ülesandeid




Pane tähele, et kui kasutad CopyToAsync'i, pea meeles lisada await; selle koodi käivitamisel antakse täitmine IO-le, enamik IO töötlemisest ei vaja arvutamiseks CPU-d, seega on üldine jõudlus parem

Kui iputStream tuleb väljastpoolt, siis ma ei soovita seda selle meetodi sees vabastada, miks? Kasutasin head voogu ja see kadus, kui ma ettevõttes läbi läksin

Teine meetod on ise mälureplikatsiooni vahemälu juhtimine, millel on lisamälu koopia


See meetod võimaldab muuta uue baidi väärtust[1024], andes kontrolli kopeeritud vahemälu üle

Järgmised on mõned meetodid, mida ei soovitata, kuid mis on kirjutamisel mugavad


Ülaltoodud meetod kopeerib mälu kaks korda ning kui sisendressursi pikkus on 1G, võtab see 2G ressursse

Sarnane eeltoodule on ka suure vahemälu taotlemine, nagu järgmises koodis näidatud


Tõhususe ja koodi elegantsi poolest on need tegelikult CopyTo meetodist kehvemad ning ka voogude tõttu. Pikkus kui pikkus ei määra vahemälu, seega pole see nii hea kui teine meetod

Allpool on väga aeglane meetod, üks bait ühe baidi kaupa kirjutamine on väga aeglane


Üleviidud:Hüperlingi sisselogimine on nähtav.
(Lõpp)




Eelmine:NPOI Operation Excel üksikasjalik selgitus
Järgmine:X-Forwarded-For mitu IP-aadressi HTTP päringupäises
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com