입력 스트림 재사용
동일한 입력 스트림을 두 번 읽는 것은 다양한 시나리오에서 유용할 수 있습니다. 그러한 시나리오 중 하나는 원격 이미지를 로드하고 로컬에 저장한 다음 저장된 이미지에 액세스하는 것입니다. 이를 달성하려면 새 입력 스트림을 만드는 대신 동일한 입력 스트림을 재사용하는 것이 더 효율적입니다.
입력 스트림을 재사용하는 한 가지 방법은 해당 내용을 바이트 배열에 복사하는 것입니다. 이는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!