본문 바로가기

Java/자바 기반 웹 개발자 과정 필기

[200318.18일차] 입출력

반응형

 

ㅇㅅㅇ

입력 / 출력

-> 우리가 만드는 프로그램이 할당 받을 메모리 외부와 데이터를 주고받음

 

 

파일 입출력 => byte단위

 

 

 

스트림 (stream)

: 순서가 있는 데이터의 연속적인 흐름

=> 스트림은 입출력을 물의 흐름처럼 간주하는 것

 

입출력 되는 데이터들은 모두 스트림을 통과한다.

 

 

=> 스트림은 연결될 수 있다.

 

 

스트림의 분류

 

 

 

 

 

 

 

 

 

 

inputStream과 OutputDStream은 1byte씩 보내고, 숫자 표현은 0~255까지 할 수 있다.

 

 

 

 

 

 

 

 

 

버퍼의 역할

그냥 inputStream과 OutputDStream은 1byte씩 보낸다.

=> 바가지로 한번에 옮기면 한번에 더 많은 양을 보낼수 있다.

=> Buffered가 바가지의 역할을 할 수 있다.

 

 

 

이렇게 되면 처리가 안되고 남아있는 데이터가 생긴다.

=> . flush()를 사용한다.

 

 

 

 

 

 

기본형 데이터의 입출력

 

 

 

 

 

객체의 입출력

객체를 쪼갠다.

=> 막 쪼개두면 순서를 모른다.

=> 쪼개면서 순서대로 정리를 해 순차적인 데이터로 만든다.

=> 직렬화

 

class 클래스명 implements Serializable

=> Serializable 인터페이스를 상속

 

 

 

 

in.readObject도 예외처리를 해야함.

 

 

 

 

직렬화를 안했을 때

=> 예외가 발생한다.

 

 

 

직렬화 해보기

 

첫번째나 두번째를 사용

 

=> 두번째 꺼 사용

 

 

 

직렬화에서 열외

입출력은 데이터를 읽어오는 거라 멤버변수만 직렬화에서 열외를 시킬 수 있다.

 

 

 

in.close()

out.close()

닫을 때 순서는 상관없다.

닫지 않으면 계속 남아있다.

 

 

 

 

파일 복사하기

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

char형으로 한글자씩 읽어온다.

 

 

 

 

 

 

 

BBufferedReader / BufferedWrite

=> 한줄 단위로 읽어온다.

=> .readLine()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형