자바의 IO는 크게 Byte와 Char 단위로 이루어지게 됩니다.
Byte의 경우 InputStream,OutputStream
Char의 경우 Reader,Writer가 있습니다.
여기에서 조금 더 구체적으로 들어가서
File의 입출력을 받고 싶다면 Byte의 경우 FileInputStream,OutputStream Char의 경우 FileReader,FileWriter 를 사용하시면 됩니다.
이러한것들이 몇개더 존재합니다.
이러한 클래스들을 장식대상 클래스라고 부르는데요
장식대상 클래스가 있다는 것은 장식하는 클래스가 있다고 생각할수도 있겠죠!!
당연히 있습니다.
이러한 클래스의 종류에는 DataInputStream,DataOutputStream,BufferedReader,PrintWriter가 있습니다.
왜 장식대상 클래스가 필요할까요?
예를들어 보겠습니다.
샤워기를 보면 샤워기 마다 기능이 다릅니다. 어떤 샤워기는 수압이 강하게, 다른 샤워기는 분수처럼 ... 정말 다양합니다.
왜 다양할까요? 그만큼 사람의 기호에 맞게 쓰도록 하기 위해서이죠. 샤워기에서 물이 나오기 전까지는 다 똑같습니다.
하지만 샤워기가 무엇이냐에 따라 물이 다르게 나온다는 말이죠.
장식대상 클래스가 일반 호수라면 장식하는 클래스는 샤워기 입니다.
왜 이렇게 I/O를 복잡하게 만들었을까요?
어떻게 보면 복잡할수 있지만 사실 더 용도에 맞게 사용하려고 만들었기 때문입니다.
이러한 패턴을 데코레이터 패턴이라고 합니다.
데코레이터 패턴(Decorator Pattern)
: 하나의 클래스를 장식 하는 것처럼 생성자에서 감싸서 새로운 기능을 계속 추가 할 수 있도록 클래스를 만드는 방식
'프로그래밍 > 자바' 카테고리의 다른 글
자바 파일 입출력 I/O 심화!! (1) | 2018.08.21 |
---|---|
자바 파일 입출력 실습!! (0) | 2018.08.21 |
[JAVA] JAVA_FX 설치하기 (0) | 2018.08.07 |
JAVA 환경 변수 세팅 (0) | 2018.07.21 |
window builder(윈도우빌더) 설치 (0) | 2018.07.17 |