Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Membaca Strim Input Berbilang Kali?

Susan Sarandon
Lepaskan: 2024-10-26 06:18:02
asal
939 orang telah melayarinya

 How to Read an Input Stream Multiple Times?

Memelihara Strim Input untuk Berbilang Bacaan

Membaca aliran input dua kali memberikan cabaran kerana aliran input biasa direka untuk digunakan secara linear. Untuk memudahkan ini, pertimbangkan strategi berikut:

Tukar kepada Array Byte

Gunakan kaedah org.apache.commons.io.IOUtils.copy untuk memindahkan aliran input kandungan kepada tatasusunan bait. Buat ByteArrayInputStream baharu daripada tatasusunan bait ini untuk membaca berulang kali daripadanya:

<code class="java">ByteArrayOutputStream baos = new ByteArrayOutputStream();
org.apache.commons.io.IOUtils.copy(in, baos);
byte[] bytes = baos.toByteArray();

// Read from byte array repeatedly
while (needToReadAgain) {
    ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
    yourReadMethodHere(bais);
}</code>
Salin selepas log masuk

Tetapkan Semula Strim Input

Sebagai alternatif, tetapkan semula strim input selepas setiap operasi bacaan. Ini membolehkan anda mengulangi strim berbilang kali tanpa membuat tatasusunan bait perantaraan:

<code class="java">// Create ByteArrayInputStream from original input stream
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);

// Read from input stream repeatedly
while (needToReadAgain) {
    bais.reset(); // Reset stream for subsequent reads
    yourReadMethodHere(bais);
}</code>
Salin selepas log masuk

Awas

Apabila berurusan dengan strim besar, adalah penting untuk mempertimbangkan memori kekangan. Pendekatan di atas menyalin strim ke ingatan, yang mungkin tidak dapat dilaksanakan dalam kes sedemikian. Untuk set data yang besar, pertimbangkan strategi lain seperti membaca julat bait pada satu masa.

Atas ialah kandungan terperinci Bagaimana untuk Membaca Strim Input Berbilang Kali?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!