>Java >java지도 시간 >Java에서 InputStream을 여러 번 읽으려면 어떻게 해야 합니까?

Java에서 InputStream을 여러 번 읽으려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 22:20:291036검색

How can I read an InputStream multiple times in Java?

다중 읽기를 위한 입력 스트림 복사

입력 스트림을 두 번 읽는 것은 데이터 소비의 순차적 특성으로 인해 어려운 일입니다. 그러나 Apache Commons IO 라이브러리를 활용하면 스트림의 콘텐츠를 재사용 가능한 소스에 복사할 수 있습니다.

ByteArrayOutputStream 및 ByteArrayInputStream을 사용하는 솔루션:

  1. IOUtils 활용 .copy를 사용하여 스트림의 콘텐츠를 ByteArrayOutputStream으로 전송합니다.
  2. 저장을 위해 ByteArrayOutputStream을 바이트 배열로 변환합니다.

스트림을 여러 번 읽으려면:

// 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);
}

참고: 이 접근 방식은 상대적으로 작은 데이터 스트림에 적합합니다. 대규모 또는 무한 스트림의 경우 메모리 고갈을 방지하기 위해 스트리밍 접근 방식을 고려하세요.

위 내용은 Java에서 InputStream을 여러 번 읽으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.