Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 38466|Répondre: 0

[Pourboires] Comment sauvegarder un flux dans un fichier en C#/.NET

[Copié le lien]
Publié le 16-05-2021 à 21:12:58 | | |
J’ai regardé quelques articles de blog en ligne sur la sauvegarde de Stream dans un fichier,Beaucoup sont incorrectes。 (J’ai trouvé plusieurs problèmes : mauvaise performance, anormalité lorsque le flux est trop grand)

Après avoir obtenu un stream, comment sauvegarder élégamment ce stream en code

La méthode la plus élégante devrait être la méthode CopyTo ou CopyToAsync


ici inputStream.Seek(0, SeekOrigin.Begin) ; Pas nécessairement, veuillez utiliser ce code selon vos besoins, par exemple il suffit de copier le flux depuis le 10e octet, etc

L’utilisation de l’approche asynchrone prendra un peu plus de temps pour cette écriture, mais cela améliorera les performances globales et permettra au processeur de gérer d’autres tâches




Notez que lorsque vous utilisez CopyToAsync, pensez à ajouter await ; lors de l’exécution de ce code, vous transmettrez l’exécution à l’IO, la plupart des traitements d’IO ne nécessitent pas de CPU pour calculer, ce qui améliore les performances globales

Aussi, si l’iputStream vient de l’extérieur, je ne recommande pas de le relâcher à l’intérieur de cette méthode, pourquoi ? J’ai utilisé un bon ruisseau et il a été tué quand je suis passé dans une entreprise

La deuxième méthode consiste à contrôler vous-même le cache de réplication mémoire, qui disposera d’une copie mémoire supplémentaire


Ce que fait cette méthode, c’est vous permettre de modifier la valeur d’un nouvel octet[1024], vous donnant ainsi le contrôle sur le cache copié

Voici quelques méthodes non recommandées, mais qui sont pratiques lors de l’écriture


La méthode ci-dessus copiera la mémoire deux fois, et si la longueur de la ressource d’entrée est de 1G, elle occupera 2G de ressources

Comme précédemment, il faut demander un grand cache, comme montré dans le code suivant


En termes d’efficacité et d’élégance de code, ils sont en réalité inférieurs à la méthode CopyTo, et à cause du flux. La longueur comme longueur ne détermine pas le cache, donc ce n’est pas aussi bon que la seconde méthode

Voici une méthode très lente, un octet par octet, l’écriture est très lente


Transféré depuis :La connexion hyperlientérée est visible.
(Fin)




Précédent:Explication détaillée de l’opération Excel NPOI
Prochain:X-Forwarded-For plusieurs adresses IP dans l’en-tête de requête HTTP
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com