PrintWriter — 객체의 형식화된 표현을 텍스트 출력 스트림에 출력

PrintWriter — 객체의 형식화된 표현을 텍스트 출력 스트림에 출력

PrintWriter는 객체의 형식화된 표현을 텍스트 출력 스트림에 출력하는 클래스예요. 이 클래스는 PrintStream에 있는 모든 print 메서드를 구현합니다. 원시 바이트를 쓰는 메서드는 포함하지 않으며, 바이트 스트림이 필요하면 인코딩되지 않은 바이트 스트림을 사용해야 해요.

출처: Java API Reference

본문

이 클래스는 java.io.Writer를 상속하며 Closeable, Flushable, Appendable, AutoCloseable을 구현합니다.

PrintStream 클래스와 달리 자동 플러시가 켜져 있으면 개행 문자가 출력될 때가 아니라 println, printf, format 메서드 중 하나가 호출될 때에만 수행돼요. 이 메서드들은 개행 문자 대신 플랫폼 고유의 줄 구분자 개념을 사용해요. 이 클래스의 메서드는 결코 I/O 예외를 던지지 않지만, 일부 생성자는 예외를 던질 수 있어요. 클라이언트는 checkError() 호출로 오류가 발생했는지 물어볼 수 있어요. 이 클래스는 항상 잘못된 문자 시퀀스와 매핑할 수 없는 문자 시퀀스를 문자셋의 기본 대체 시퀀스로 대체해요.

필드

  • protected Writer out — 이 PrintWriter가 쓰는 대상 writer예요.

생성자

  • PrintWriter(Writer out) — 자동 줄 플러시 없이 기존 Writer로 만들어요.
  • PrintWriter(Writer out, boolean autoFlush) — 자동 플러시 여부를 지정해 만들어요.
  • PrintWriter(OutputStream out) — 기존 OutputStream에서 만들되 자동 줄 플러시 없이 만들어요.
  • PrintWriter(OutputStream out, boolean autoFlush) — 기존 OutputStream과 자동 플러시 여부로 만들어요.
  • PrintWriter(OutputStream out, boolean autoFlush, Charset charset) — 문자셋을 지정해 만들어요.
  • PrintWriter(String fileName) — 지정한 파일 이름으로 만들어요.
  • PrintWriter(String fileName, Charset charset) — 파일 이름과 문자셋으로 만들어요.
  • PrintWriter(File file) — 지정한 파일로 만들어요.
  • PrintWriter(File file, Charset charset) — 파일과 문자셋으로 만들어요.

메서드

  • void print(...)boolean, char, int, long, float, double, char[], String, Object 표현을 출력해요.
  • void println(...) — 출력 후 줄을 종료해요.
  • PrintWriter printf(String format, Object... args) — 형식 문자열과 인자로 형식화해 출력해요.
  • PrintWriter format(String format, Object... args) — 형식화해 출력해요.
  • PrintWriter append(CharSequence csq) — 문자 시퀀스를 추가해요.
  • void write(int c), write(char[] cbuf, int off, int len), write(String s, int off, int len) — 문자를 써요.
  • boolean checkError() — 스트림의 오류 상태를 플러시하고 검사해요.
  • protected void setError() — 스트림의 오류 상태를 설정해요.
  • protected void clearError() — 스트림의 오류 상태를 지워요.
  • void flush(), void close() — 플러시와 닫기를 수행하며 예외를 던지지 않아요.

PrintWriter는 텍스트 출력이 필요할 때 PrintStream보다 인코딩을 더 잘 제어할 수 있고 문자 기반 출력에 적합해요.

더 알아보기 (Learn more)