Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 38466|Resposta: 0

[Gorjetas] Como salvar um stream em um arquivo em C#/.NET

[Copiar link]
Postado em 2021-5-16 21:12:58 | | |
Vi alguns posts de blog online sobre salvar o Stream em um arquivo,Muitos estão incorretos。 (Encontrei vários problemas: desempenho ruim, anormal quando o fluxo é muito grande)

Depois de conseguir uma Stream, como salvar essa Stream de forma elegante no código

O método mais elegante deve ser através do método CopyTo ou CopyToAsync


aqui inputStream.Seek(0, SeekOrigin.Begin); Não necessariamente, por favor, use esse código de acordo com suas próprias necessidades, como você só precisa copiar o fluxo do 10º byte, etc

Usar a abordagem assíncrona levará um pouco mais de tempo para essa escrita, mas dará um desempenho geral melhor e permitirá que a CPU cuide de outras tarefas




Note que, ao usar o CopyToAsync, lembre-se de adicionar await; ao executar esse código, você transferirá a execução para a IO; a maioria dos processamentos de IO não requer CPU para ser computada, para que o desempenho geral seja melhor

Além disso, se o iputStream vem de fora, não recomendo liberá-lo dentro desse método, por quê? Usei um bom riacho e ele foi cancelado quando passei em um negócio

O segundo método é controlar você mesmo o cache de replicação de memória, que terá uma cópia de memória adicional


O que esse método faz é permitir que você modifique o valor do novo byte[1024], dando controle sobre o cache copiado

A seguir, alguns métodos que não são recomendados, mas que são convenientes na hora de escrever


O método acima copiará a memória duas vezes e, se o comprimento do recurso de entrada for 1G, ele ocupará 2G de recursos

Semelhante ao acima é solicitar um grande cache, como mostrado no código a seguir


Em termos de eficiência e elegância do código, eles são na verdade inferiores ao método CopyTo, e por causa do fluxo. Comprimento como comprimento não determina o cache, então não é tão bom quanto o segundo método

Abaixo está um método super lento, um byte por byte escrever é muito lento


Transferido de:O login do hiperlink está visível.
(Fim)




Anterior:Explicação detalhada do Excel da Operação NPOI
Próximo:X-Encaminhado-Para múltiplos endereços IP no cabeçalho da requisição HTTP
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com