<객체지향 프로그래밍 67장~70장>
표준 입출력
System 클래스의 표준 입출력 멤버
public class System{
public static PrintStream out; // 표준 출력 스트림
public static InputStream in; // 표준 입력 스트림
public static PrintStream err; // 표준 에러 스트림
}
System.in.read() 를 사용 할 때 in 멤버는 inputStream 을 쓰고 그 안에 read 라는 메서드로 읽고
반환 값은 int로 된다 byte로 읽는데 int로 반환되는 이유는 파일의 끝에 도달하면 -1을 반환해야되기 때문
입력 예
입력에 한글을 설정
해결 ( 보조스트림 : InputStreamReader )
바이트 단위 입출력 스트림
InputStream : 바이트 단위 입력 스트림 최상위 클래스
OutputStream : 바이트 단위 출력 스트림 최상위 클래스
추상 메서드를 포함한 추상 클래스로 하위 클래스가 구현하여 사용
FileInputStream 과 FileOutputStream 사용하기
- 파일에 한 바이트씩 자료를 읽고 쓰는데 사용 ( 한글은 못읽는다 . 한글은 -> FileReader or FileWriter 사용 )
- 입력 스트림은 파일이 없는 경우 예외 발생
- 출력 스트림은 파일이 없는 경우 파일 생성하여 출력
좀더 깰끔 하게
FileInputStream의 read 메서드
FileOutputStream
FileInputStream + FileOutputStream
문자 단위 입출력 스트림
Reader : 문자 단위로 읽는 최상위 스트림
Writer : 문자 단위로 쓰는 최상위 스트림
추상 메서드를 포함한 추상 클래스로 하위 클래스가 상속받아 구현
문자를 읽을 때 ( FileReader )
byte로 읽다가 문자로 읽어야 될 경우
문자를 쓸 때 ( FileWriter )
보조 스트림 ( 기능을 더해주는 역할 )
- 실제 읽고 쓰는 스트림이 아닌 보조적인 기능을 추가하는 스트림
FilterInputStream 과 FilterOutputStream 이 보조 스트림의 상위 클래스
Buffered 스트림 : 내부에 8192 바이트 배열을 가지고 있음 ( 읽거나 쓸 떄 속도가 빠름 )
DataInputStream / DataOutputStream : 자료가 저장된 상태 그대로 자료형을 유지하며 읽거나 쓰는
기능을 제공하는 스트림
Buffered 스트림
데코레이터 패턴
BufferedReader isr = new BufferedReader ( new InputStreamReader ( socket.getInputStream())) ;
< 보조 스트림이 문자 스트림을 감싸고 인풋스트림을 감싸고 계속 기능이 추가된다 -> 데코레이터 패턴 >
'백엔드 > Java' 카테고리의 다른 글
자바/ 소문자를 대문자로, 대문자를 소문자로 (0) | 2022.11.12 |
---|---|
<FAST CAMPUS>자바 웹개발-객체지향 프로그래밍 (0) | 2021.01.27 |
<FAST CAMPUS>자바 웹개발-객체지향 프로그래밍 (0) | 2021.01.25 |
<FAST CAMPUS>자바 웹개발-객체지향 프로그래밍 (0) | 2021.01.24 |
<FAST CAMPUS>자바 웹개발-객체지향 프로그래밍 (0) | 2021.01.23 |
댓글