자바 에서 BufferedWriter 와 PrintWriter 의 차이
글쓴이: NineTIN / 작성시간: 목, 2011/11/03 - 8:51오후
안녕하세요 자바 파일 입출력 공부 하다가
의문이 생겨서 질문 남겨 봅니다
File f1 = new File("C:/test.txt");
PrintWriter p1 = new PrintWriter(new FileWriter(f1, false));
BufferedWriter p2 = new BufferedWriter(new FileWriter(f1, false));
p1.println();
p2.write();
를 쓰냐의 차이가 있을 뿐인데 이 둘 다른 차이가 정확히 있나요?
Forums:
http://download.oracle.com/ja
http://download.oracle.com/javase/6/docs/api/java/io/PrintWriter.html
http://download.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html
그 차이가 아주 큰 기능 차이지요. 버퍼링을 하느냐 안 하느냐도 큰 차이이구요.
두 문서를 잘 읽어보세요.
속도 차이가 있는 것인가요?
입력 받은 것을 저장해두는 공간(버퍼)을 미리 확보 해놓고
그 버퍼에서 Stringbuffer가 빼내서 문자열에 추가 하는 방식이냐 아니냐의 차이가 있는 건가요?
'속도에서 차이가 나리라'는 크게 와닿지 않습니다만
메모리 효율을 생각해야 하는 것이군요
맞나요??
IO 버퍼링은 말씀하신 것과 의미가
IO 버퍼링은 말씀하신 것과 의미가 다릅니다.
장치(디스크, 네트워크 등등)에 그때 그때 바로 쓰느냐, 어느정도씩 모아 두었다가 뭉텅이로 쓰느냐의 차이입니다.
장치에 바로 바로 쓰면 느립니다. 버퍼링해서 모아두었다가 쓰면 빠릅니다.
BufferedWriter 문서에 써있기로는
Without buffering, each invocation of a print() method would cause characters to be converted into bytes that would then be written immediately to the file, which can be very inefficient.
랍니다. 여기서 print() 는 PrintWriter 의 print() 입니다.
버퍼가 왜? 빠른가? 라는 주제와 관련된 강의 추천
버퍼가 왜? 빠른가? 라는 주제 공부하시겠다면,
나빌레라님 블러그도 참고하시면 좋습니다.
특히 "컴퓨터를 만듭시다. 어때요~ 참 쉽죠?" 강좌 추천드립니다.
댓글 달기