본문으로 바로가기

자바 I/O 알아보자

category 프로그래밍/자바 2018. 8. 21. 00:47



자바의 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