Java에서 파일에다가 출력을 할 때 PrintWriter와 BufferedWriter를 이용할 수 있다.
(Writer를 상속하는 클래스는 BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter가 있지만 대표적인 것만 다루기로 하겠다.)
우선 PrintWriter의 경우는 print, println, printf 처럼 다양한 출력함수를 제공함으로써 파일출력을 편하게 해준다.
BufferedWriter의 경우는 버퍼를 사용하여 통해 좀 더 효율적인 파일쓰기를 지원한다.
이 두가지 방법을 마치 둘 중에 하나를 선택해야한다는 흑백논리로 생각하는 사람들이 있는데 이는 큰 오산이다.
Java의 파일 IO 클래스들은 데코레이터 패턴을 사용한다.
즉, 원시 클래스에다가 원하는 기능을 가지는 클래스를 가지고 입맛대로 꾸며서 사용할 수 있다는 것이다.
위의 코드처럼 PrintWriter를 만들어서 사용하면 PrintWriter의 장점과 BufferedWriter의 장점을 모두 이용할 수 있다.
(Writer를 상속하는 클래스는 BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter가 있지만 대표적인 것만 다루기로 하겠다.)
우선 PrintWriter의 경우는 print, println, printf 처럼 다양한 출력함수를 제공함으로써 파일출력을 편하게 해준다.
BufferedWriter의 경우는 버퍼를 사용하여 통해 좀 더 효율적인 파일쓰기를 지원한다.
이 두가지 방법을 마치 둘 중에 하나를 선택해야한다는 흑백논리로 생각하는 사람들이 있는데 이는 큰 오산이다.
Java의 파일 IO 클래스들은 데코레이터 패턴을 사용한다.
즉, 원시 클래스에다가 원하는 기능을 가지는 클래스를 가지고 입맛대로 꾸며서 사용할 수 있다는 것이다.
'Archive' 카테고리의 다른 글
Udacity를 소개합니다 (0) | 2012.02.23 |
---|---|
함수에 대해 (스택프레임과 호출규약; Stack Frame and Calling Convention) (0) | 2012.02.20 |
Java heap의 세가지 영역 (0) | 2012.02.11 |
Python(파이썬)으로 httplib과 urllib을 사용해서 GET하기 (0) | 2012.02.05 |
HeadFirst Javascript (헤드퍼스트 자바스크립트) AJAX 예제 Youcube 변형한 것 (0) | 2012.01.31 |