Rumah > pembangunan bahagian belakang > C++ > Apakah cara terbaik untuk menukar aliran ke array byte di .net?

Apakah cara terbaik untuk menukar aliran ke array byte di .net?

Linda Hamilton
Lepaskan: 2025-01-31 07:01:12
asal
963 orang telah melayarinya

What's the Best Way to Convert a Stream to a Byte Array in .NET?

mengoptimumkan .net aliran ke penukaran array byte

Beberapa kaedah wujud untuk menukar aliran ke array byte dalam .net. Artikel ini meneroka pendekatan yang paling berkesan, menangani batasan teknik yang lebih mudah. ​​

di luar

BinaryReader

Semasa menggunakan

untuk menukar aliran ke array byte adalah mungkin (terutamanya dalam .NET 3.5), ia memerlukan mengetahui panjang aliran terlebih dahulu. Ini tidak selalu praktikal. BinaryReader

mengendalikan panjang aliran yang tidak diketahui

Untuk aliran dengan panjang yang tidak diketahui, penyelesaian yang lebih mantap diperlukan. Pendekatan yang sama melibatkan membaca aliran dalam ketulan, memasuki setiap bahagian ke

. MemoryStream

Custom

Fungsi ReadFully

Fungsi Custom

menyediakan cara yang bersih untuk mencapai bacaan ini. Kaedah ini secara beransur -ansur membaca dan menambahkan data sehingga akhir aliran dicapai, dengan berkesan mencerminkan fungsi ReadFully tanpa keperluan panjang. BinaryReader

memanfaatkan

(.net 4) Stream.CopyTo

.NET 4 dan versi kemudian menawarkan kaedah

yang mudah. Ini memudahkan proses dengan terus menyalin kandungan aliran ke dalam Stream.CopyTo, yang kemudiannya dapat ditukar dengan mudah ke array byte. MemoryStream

penalaan prestasi untuk aliran besar

Kedua -dua pendekatan chunked dan

melibatkan peruntukan memori dan menyalin. Walaupun boleh diterima untuk aliran kecil, prestasi boleh menderita dengan aliran besar. Strategi pengoptimuman termasuk pra-memperuntukkan Stream.CopyTo ke saiz yang diharapkan atau menggunakan lebih banyak operasi salinan penampan langsung untuk kecekapan yang lebih baik. MemoryStream

Atas ialah kandungan terperinci Apakah cara terbaik untuk menukar aliran ke array byte di .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan