Kopieren von InputStream für mehrere Lesevorgänge
Das zweimalige Lesen eines Eingabestreams stellt aufgrund der sequentiellen Natur des Datenverbrauchs eine Herausforderung dar. Durch die Nutzung der Apache Commons IO-Bibliothek können Sie jedoch den Inhalt des Streams in eine wiederverwendbare Quelle kopieren.
Lösung mit ByteArrayOutputStream und ByteArrayInputStream:
So lesen Sie den Stream mehrmals:
// Option 1: Iteratively create `ByteArrayInputStream` objects while (needToReadAgain) { ByteArrayInputStream bais = new ByteArrayInputStream(bytes); yourReadMethodHere(bais); } // Option 2: Reset the same `ByteArrayInputStream` repeatedly ByteArrayInputStream bais = new ByteArrayInputStream(bytes); while (needToReadAgain) { bais.reset(); yourReadMethodHere(bais); }
Hinweis: Dieser Ansatz eignet sich für relativ kleine Datenströme. Erwägen Sie bei großen oder unendlichen Streams Streaming-Ansätze, um eine Speichererschöpfung zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann ich einen InputStream in Java mehrmals lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!