PrintWriter BufferedWriter

jungnoeun·2022년 8월 2일
0

java

목록 보기
19/22

PrintWriter

PrintWriter은 개체를 형식화(포맷)된 표현을 텍스트 출력 스트림으로 print(인쇄)한다.
이 클래스는 모든 print메서드들을 구현한다.(PrintStream에서 찾을 수 있는)
또한 이것은 프로그램이 인코딩되지 않은 바이트 스트림을 사용해야 하는 형식화(포맷)되지 않은 바이트를 쓰는 메서드는 포함하지 않는다.

PrintStream 클래스와 달리 자동 flushing이 활성화된 경우, newline character가 output에 출력되는 것이 아니라 println, printf 또는 format메서드중 하나가 호출될때만 자동 flushing이 수행된다.
이 메서드드은 newline character 대신 line separator라는 플랫폼 고유의 개념을 사용한다.

이 클래스의 메서드는 I/O 예외를 발생시키지 않지만 일부 생성자는 발생시킬 수 있다. 클라이언트는 checkError()를 호출해서 어느 에러가 발생했는지 여부를 문의할 수 있다.







BufferedWriter

BufferedWriter는 single character, 배열, 문자열을 효율적으로 제공할 수 있도록 문자를 버퍼링해서 문자 출력 스트림에 텍스트를 쓴다.

버퍼의 크기는 지정되어 있거나 default사이즈로 되어있다. default사이즈는 대부분의 용도에 맞게 충분히 크다.

시스템 속성 line.separator에 정의된 대로 플랫폼 자체의 line separator(줄 구분자) 개념을 사용하는 newLine() 메서드가 제공된다. 일부 플랫폼들은 newline character인 ('|n')을 사용하여 줄을 중료하지 않는다. 그러므로 각 output line을 종료하기 위해 이 메서드를 부르는 것은 newline character을 직접적으로 쓰는 것보다 선호된다.

일반적으로 Writer는 출력을 기본 문자 또는 바이트 스트림으로 즉시 전송한다. 그러나 즉각적인 prompt 출력이 필요한것이 아니라면 FileWriters나 OutputStreamWriters와 같이 write()작업의 비용이 많이 드는 모든 Writer를 BufferedWriter로 감싸는 것이 바람직하다.

예를 들어,

PrintWrtier out
 = new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));

위의 예제에서는 PrintWriter의 출력을 파일로 버퍼링할 것이다.
버퍼링 없이는, print() 메서드를 호출할 때마다 문자가 바이트로 변환되어 파일에 즉시 기록되므로 매우 비효율적일 수 있다.

https://docs.oracle.com/javase/6/docs/api/java/io/BufferedWriter.html

https://docs.oracle.com/javase/6/docs/api/java/io/PrintWriter.html

[Java]PrintWriter method 성능 비교 (추가 BufferedWriter)
https://velog.io/@sayi/JavaPrintWriter-method-%EC%84%B1%EB%8A%A5-%EB%B9%84%EA%B5%90-%EC%B6%94%EA%B0%80-BufferedWriter

[Java IO_02] PrintWriter 클래스 사용법 예제분석
https://dream-space.tistory.com/4

BufferedWriter와 System.out.println() 의 비교와 사용법
https://code0xff.tistory.com/10

자바 에서 BufferedWriter 와 PrintWriter 의 차이
https://kldp.org/node/128093

bufferedwriter와 println 동작 차이
https://www.acmicpc.net/board/view/71804

profile
개발자

0개의 댓글