Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 38466|Відповідь: 0

[Чайови] Як зберегти потік у файл у форматі C#/.NET

[Копіювати посилання]
Опубліковано 2021-5-16 21:12:58 | | |
Переглянув кілька блогів онлайн про збереження Stream у файл,Багато з них помиляються。 (Я знайшов кілька проблем: погана продуктивність, аномальність, коли потік занадто великий)

Після отримання потоку як елегантно зберегти цей стрім у код

Найелегантнішим методом має бути метод CopyTo або CopyToAsync


тут inputStream.Seek(0, SeekOrigin.Begin); Не обов'язково, будь ласка, використовуйте цей код відповідно до своїх потреб, наприклад, потрібно скопіювати потік лише з 10-го байта тощо

Використання асинхронного підходу займе трохи більше часу для цього запису, але це покращить загальну продуктивність і дозволить процесору виконувати інші завдання




Зверніть увагу, що при використанні CopyToAsync пам'ятайте про очікування: під час виконання цього коду ви передаєте виконання IO, більшість обробки IO не потребує процесора для обчислення, щоб загальна продуктивність була кращою

Також, якщо iputStream надходить ззовні, то я не рекомендую випускати його всередині цього способу, чому? Я користувався хорошим струмком, і він загинув, коли я проходив у бізнесі

Другий метод — керувати кешом реплікації пам'яті самостійно, який матиме додаткову копію пам'яті


Цей метод дозволяє змінювати значення нового байта[1024], даючи контроль над скопійованим кешом

Далі — деякі методи, які не рекомендуються, але вони зручні при написанні


Вищенаведений метод копіює пам'ять двічі, і якщо довжина вхідного ресурсу становить 1G, він займатиме 2G ресурсів

Подібно до наведеного вище — це запит на великий кеш, як показано в наступному коді


З точки зору ефективності та елегантності коду вони фактично поступаються методу CopyTo, а також через поток. Довжина як довжина не визначає кеш, тому він не такий ефективний, як другий метод

Нижче наведено дуже повільний метод: запис на один байт на один байт дуже повільний


Переведено з:Вхід за гіперпосиланням видно.
(Кінець)




Попередній:Детальне пояснення операції NPOI Excel
Наступний:X-Forwarded-Для кількох IP-адрес у заголовку HTTP-запиту
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com