inputstream 중복 사용 방법

1214 단어 자바
프로젝트 에서 같은 파일 흐름 에 대해 두 가지 작업 을 해 야 합 니 다.하 나 는 파일 을 HDFS 에 업로드 하 는 것 이 고 하 나 는 파일 을 solr 에 업로드 하여 파일 색인 을 만 드 는 것 입 니 다.흐름 때문에 한 번 만 읽 을 수 있 습 니 다.그래서 흐름 을 중복 사용 할 수 있 도록 방법 을 강구 해 야 한다.
네트워크 에서 inputstream 을 ByteArray OutputStream 으로 바 꾸 는 방법 을 찾 았 습 니 다.스 트림 을 사용 할 때 baos 로 바 꾸 면 됩 니 다.코드 는 다음 과 같 습 니 다:
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
byte[] buffer = new byte[1024];  
int len;  
while ((len = input.read(buffer)) > -1 ) {  
    baos.write(buffer, 0, len);  
}  
baos.flush();                

InputStream stream1 = new ByteArrayInputStream(baos.toByteArray());  

InputStream stream2 = new ByteArrayInputStream(baos.toByteArray());  

좋은 웹페이지 즐겨찾기