> Java > java지도 시간 > Java에서 다중 읽기를 위해 입력 스트림을 재사용하는 방법은 무엇입니까?

Java에서 다중 읽기를 위해 입력 스트림을 재사용하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-10-26 08:15:03
원래의
750명이 탐색했습니다.

How to Reuse an Input Stream for Multiple Reads in Java?

입력 스트림 재사용

동일한 입력 스트림을 두 번 읽는 것은 다양한 시나리오에서 유용할 수 있습니다. 그러한 시나리오 중 하나는 원격 이미지를 로드하고 로컬에 저장한 다음 저장된 이미지에 액세스하는 것입니다. 이를 달성하려면 새 입력 스트림을 만드는 대신 동일한 입력 스트림을 재사용하는 것이 더 효율적입니다.

입력 스트림을 재사용하는 한 가지 방법은 해당 내용을 바이트 배열에 복사하는 것입니다. 이는 org.apache.commons.io.IOUtils.copy 메소드를 사용하여 수행할 수 있습니다. 그런 다음 결과 바이트 배열을 사용하여 반복적으로 읽을 수 있는 여러 ByteArrayInputStream 객체를 생성할 수 있습니다.

이를 수행하는 방법의 예는 다음과 같습니다.

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

// Option 1: Read the byte array multiple times
while (needToReadAgain) {
    ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
    yourReadMethodHere(bais);
}

// Option 2: Reset the input stream to read from it again
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
while (needToReadAgain) {
    bais.reset();
    yourReadMethodHere(bais);
}</code>
로그인 후 복사

이 접근 방식은 스트림 내용을 메모리에 복사하는 작업이 포함되므로 대규모 또는 무한 스트림에는 적합하지 않습니다.

위 내용은 Java에서 다중 읽기를 위해 입력 스트림을 재사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿