데이터 입출력
-- 데이터는 사용자로부터 키보드, 마우스 등을 통해 입력 될 수 있고, 파일 또는 네트워크를 통해 입력될 수 있음
-- 모니터, 파일 등으로도 출력할 수도 있음
자바에서 데이터는 Stream을 통해 입출력됨.
* Stream은 단일 방향으로 연속적으로 흘러가는 것을 의미, 데이터는 출발지에서 나와 도착지로 흘러간다는 개념
데이터를 입력 받을 때 - InputStream
데이터를 출력 할 때 - OutputStream
>> 둘 다 바이트 단위 입출력 스트림
* 바이트 단위 입출력 스트림
: 그림, 멀티미디어, 문자등 모든 종류의 데이터들을 주고 받을 수 있다.
코드화 하는 모든 것은 입력
반대는 전부 출력!
public class IOEx1 {
public static void main(String[] args) {
byte[] inSrc = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
byte[] outSrc = null;
ByteArrayInputStream input = null;
ByteArrayOutputStream output = null;
input = new ByteArrayInputStream(inSrc);
output = new ByteArrayOutputStream();
int data = 0;
// while((data = input.read()) != -1) { // input.read() 가 0일때까지 반복한다. 0은 end of file
// output.write(data);
// }
data = input.read(); // 1
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read();
output.write(data);
data = input.read(); // 10
output.write(data);
data = input.read(); // 11 >> -1
output.write(data);
outSrc = output.toByteArray();
System.out.println("Input Source : " + Arrays.toString(inSrc));
System.out.println("Output Source : " + Arrays.toString(outSrc));
}
}
public class IOEx3 {
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];
ByteArrayInputStream bais = new ByteArrayInputStream(inSrc);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.out.println("input source: " + Arrays.toString(inSrc));
while(bais.available() > 0) {
baos.write(temp, 0, bais.read(temp));
// System.out.println("temp : " + Arrays.toString(temp));
outSrc = baos.toByteArray();
printArrays(temp, outSrc);
}
}
static void printArrays(byte[] temp, byte[] outSrc) {
System.out.println("temp : " + Arrays.toString(temp));
System.out.println("Output Source : " + Arrays.toString(outSrc));
}
}
'자바 풀스택 공부' 카테고리의 다른 글
Day 49. [JSP/Servlet] 쿠키 & 세션 (0) | 2022.03.16 |
---|---|
Day 48. [JSP/Servlet] 롬복 설정, 회원가입 만들기 (0) | 2022.03.15 |
Day 46. [JSP/Servlet] 라이프 사이클 (0) | 2022.03.14 |
Day 45. [Oracle SQL] 데이터 무결성 제약조건 (0) | 2022.03.10 |
Day 44. [Oracle SQL] COMMIT, ROLLBACK, SEQUENCE, 테이블 구조만 복사, 구조 변경 (0) | 2022.03.08 |
댓글