Heim > Java > javaLernprogramm > Können Sie einen Eingabestream zweimal lesen?

Können Sie einen Eingabestream zweimal lesen?

DDD
Freigeben: 2024-10-26 17:45:29
Original
525 Leute haben es durchsucht

 Can You Read an Input Stream Twice?

Können Eingabeströme zweimal gelesen werden?

Beim Abrufen und Speichern von Daten aus dem Web suchen Entwickler häufig nach effizienten Methoden. Eine dieser Methoden besteht darin, denselben Eingabestream mehrmals zu verwenden. Dies wirft die Frage auf: Ist es möglich, denselben Eingabestream zweimal zu lesen?

Eingabestreams kopieren

Ein Eingabestream kann nicht direkt zweimal gelesen werden. Es kann jedoch mit org.apache.commons.io.IOUtils.copy in ein Byte-Array kopiert werden. Dieses Array kann dann verwendet werden, um mehrere ByteArrayInputStream-Objekte zum anschließenden Lesen zu erstellen.

Beispiel

Unter Verwendung der Apache Commons IO-Bibliothek finden Sie hier ein Beispiel dafür, wie ein Eingabestream zweimal gelesen wird:

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

// either
while (needToReadAgain) {
    ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
    yourReadMethodHere(bais);
}

// or
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
while (needToReadAgain) {
    bais.reset();
    yourReadMethodHere(bais);
}</code>
Nach dem Login kopieren

Hinweis:Dieser Ansatz funktioniert zwar für kleine Streams wie Bilder, ist jedoch nicht für große oder unendliche Streams geeignet, da dies zu Speicherproblemen führen kann.

Das obige ist der detaillierte Inhalt vonKönnen Sie einen Eingabestream zweimal lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage