public static void main(String[] args) throws IOException {
byte[] inSrc = {0,1,2,3,4,5,6,7,8,9};
byte[] outSrc = null;
byte[] temp = new byte[4]; //데이터 읽을 때 사용할 버퍼
//temp 변수 배열은 크기는 4개 까지 들어 갈수 있음
//스트림 객체 생성하기
//inputStream : 입력
ByteArrayInputStream bais = new ByteArrayInputStream(inSrc);
//outputStream : 출력
ByteArrayOutputStream baos = new ByteArrayOutputStream();
write(char[] cbuf, int off, int len) : 배열 cbuf에서 off를 시작지점으로 len만큼의 문자 출력
while ((readBytes = bais.read(temp)) != -1) {
System.out.println("temp =>"+ Arrays.toString(temp));
// 배열 temp에서 0를 시작지점으로 readBytes만큼의 문자 출력하기
baos.write(temp,0,readBytes);
}
원본
더보기
package kr.or.ddit.basic;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
public class T04ByteArrayIOTest2 {
public static void main(String[] args) throws IOException {
byte[] inSrc = {0,1,2,3,4,5,6,7,8,9};
byte[] outSrc = null;
byte[] temp = new byte[4]; //데이터 읽을 때 사용할 버퍼
/*
//직접 복사하기
//1. 배열초기화
outSrc = new byte[inSrc.length];
//for문이용한 직접복사
for (int i = 0; i < inSrc.length; i++) {
outSrc[i] = inSrc[i];
}
System.out.println("직접 복사 후 outSrc =>" + Arrays.toString(outSrc));
*/
/*
//arraycopy를 이용한 배열 복사 하기
//1. 배열초기화
outSrc = new byte[inSrc.length];
System.arraycopy(inSrc, 0, outSrc, 0, inSrc.length);
System.out.println("arraycopy 복사 후 outSrc =>" + Arrays.toString(outSrc));
*/
//스트림
// 1btye씩 읽음 그래서 btye기반 스트림 으로 불림
//input 과 output 따라 있음
// 기준 : 프로그램 관점에서 데이터를 읽어오는것은 inputStream 필요
// 데이터를 출력하는것은 outputStream 필요
//스트림 객체 생성하기
//inputStream : 입력
ByteArrayInputStream bais = new ByteArrayInputStream(inSrc);
//outputStream : 출력
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//byte < int
int readBytes = 0; // 읽어온 바이트개수 저장하기 위한 변수
// read() 메서드 => byte 단위로 데이터를 읽어와 int형으로 반환한다.
// (더 이상 읽을 데이터가 없으면 -1 반환한다.)
// => -1를 표현할려면 int 타입으로 가져와야한다.
while ((readBytes = bais.read(temp)) != -1) {
System.out.println("temp =>"+ Arrays.toString(temp));
baos.write(temp,0,readBytes); // 출력하기
}
// 출력된 스트림 데이터를 배열로 가져오기
outSrc = baos.toByteArray();
System.out.println("inSrc =>" + Arrays.toString(inSrc));
System.out.println("outSrc =>" + Arrays.toString(outSrc));
}
}
'JAVA > 수업' 카테고리의 다른 글
T06FileStreamTest 파일저장용 스트림 (0) | 2024.02.03 |
---|---|
T05FileStreamTest (0) | 2024.02.03 |
T03ByteArrayIOTest(Stream) (0) | 2024.02.02 |
T02FileTest(exists,createNewFile,listFiles,list,displayFileList) (0) | 2024.02.02 |
T01FileTest File 객체 (0) | 2024.01.31 |