ejyoo's 개발 노트

FileIO - 바이트 배열을 읽는 ByteArrayInputStream, ByteArrayOutputStream 본문

BackEnd/Java

FileIO - 바이트 배열을 읽는 ByteArrayInputStream, ByteArrayOutputStream

ejyoovV 2021. 3. 22. 14:33

이번 예제는 바이트 기반으로 된 배열을 다른 배열로 복사하는 예제입니다.

 

 

💡 ByteArrayInputStream / ByteArrayOutputStream

ByteArrayInputStream은 바이트 기반으로 된 배열을 읽을때 사용합니다.

반대로 ByteArrayOutputStream는 바이트 기반으로 된 배열을 버퍼에 저장할때 사용합니다.

 

💡 바이트 배열 생성

2개의 바이트 배열을 준비합니다.

inSrc는 바이트 값이 들어있는 배열이고 outSrc는 inSrc에 있는 바이트 값을 넣어줄 변수입니다.

 

💡 바이트 배열 스트림 선언 및 객체 생성

바이트 배열을 읽어올 스트림 선언 및 객체를 생성합니다.

💡 바이트 배열로 된 버퍼 저장소를 생성합니다.

💡 바이트 배열에서 읽어온 자료를 저장할 변수를 선언합니다.

💡 자료 읽기와 쓰기

ByteArrayInputStream에는 read()라는 메서드를 제공합니다.

read() 메서드는 byte단위로 자료를 읽어와서 int 형으로 반환합니다.

더이상 읽어올 자료가 없으면 -1을 반환합니다.

ByteArrayOutputStream에는 write()라는 메서드를 제공합니다.

baos에 버퍼를 하나씩 담는 역할을 합니다.

💡 복사해온 자료를 byte배열로 변환하기

ByteArrayOutputStream에는 toByteArray() 라는 메서드를 제공합니다.

toByteArray() 메서드는 write된 스트림 값들을 배열로 변환해서 반환하는 메서드 입니다.

이 메서드를 사용하여 outSrc 변수에 출력된 스트림 값을 배열로 변환해서 담습니다.

💡 원본 자료와 복사한 자료를 출력

System.out.println을 사용해 원본자료와 복사한 자료를 출력합니다.

💡 사용한 자료를 반납합니다.