(1) 바이트 기반 스트림
(2) 바이트 기반 스트림 종류
T03_ByteArrayIOTest
main() throws IOException
byte[] inSrc = {0,1,2,3,4,5,6,7,8,9};
byte[] outSrc = null;
//스트링 선언 및 객체 생성
ByteArrayInputStream bais = null;//스트림객체 선언
bais = new ByteArrayInputStream(inSrc); //객체 생성
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int data;//읽어온 자료를 저장할 변수
while((data=bais.read())!=-1) {//-1이 아닐때까지 읽어
baos.write(data);//출력하기 : OutputStream 객체 baos한테 맡겨
}
//출력된 스트림 값들을 배열로 변환해서 반환하는 메서드
outSrc = baos.toByteArray();
System.out.println("inSrc => "+Arrays.toString(inSrc));
System.out.println("outSrc => "+Arrays.toString(outSrc));
//스트림 객체 닫아주기 (IOExeption 던져줘 빨간거 뜨니까)
bais.close();
baos.close();
Console:
inSrc => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
outSrc => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
public class T04_ByteArrayIOTest {
public static void main(String[] args) {
//1>>
byte[] inSrc = {0,1,2,3,4,5,6,7,8,9};
byte[] outSrc = null;
//2>> 4byte가진 배열 생성했으니까 read()에 temp를 담아서 읽으면 4개씩 읽는다.
byte[] temp = new byte[4]; //자료읽을때 사용할 배열
ByteArrayInputStream bais = new ByteArrayInputStream(inSrc);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//3>> available(), read(), write()
try {
//available() => 읽어 올 수 있는 byte수를 반환
// while(bais.available() > 0) {//읽어들일 수 있으면 3바퀴 돈다.
int len; //실제 읽어온 byte 수를 반환한다.
while((len = bais.read(temp)) != -1) {
/*bais.read(temp); //temp배열 크기만큼 자료를 읽어와 temp배열에 저장한다.
baos.write(temp);//temp배열의 내용을 출력한다.
*/
//실제 읽어온 byte수를 반환한다. read()와 read(temp)차이
//int len = bais.read(temp); // byte개수 반환, 더이상 읽어올게 없으면 -1반환
//temp배열의 내용 중에서 0번째 부터 len 개수만큼 출력
baos.write(temp, 0, len);//(temp, 어디서부터 읽을건지, len)
System.out.println("temp : "+Arrays.toString(temp));
}
outSrc = baos.toByteArray();
System.out.println("inSrc => "+Arrays.toString(inSrc));
System.out.println("outSrc => "+Arrays.toString(outSrc));
//스트림 객체 닫아주기
bais.close();
baos.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}
Console:
temp : [0, 1, 2, 3]
temp : [4, 5, 6, 7]
temp : [8, 9, 6, 7]
inSrc => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
outSrc => [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]