PrintStream — 다양한 데이터 값을 편리하게 출력
PrintStream — 다양한 데이터 값을 편리하게 출력
PrintStream은 다른 출력 스트림에 다양한 데이터 값의 표현을 편리하게 출력하는 기능을 더해요. 다른 출력 스트림과 달리 PrintStream은 절대 IOException을 던지지 않으며, 대신 예외 상황이 발생하면 내부 플래그를 설정해 checkError 메서드로 검사할 수 있게 해요.
본문
이 클래스는 java.io.OutputStream → java.io.FilterOutputStream을 상속하며 Appendable, Closeable, Flushable, AutoCloseable을 구현합니다.
선택적으로 자동 플러시되는 PrintStream을 만들 수 있는데, 이는 바이트 배열이 쓰여지거나 println 메서드 중 하나가 호출되거나 개행 문자·바이트('\n')가 쓰여진 뒤 기반 출력 스트림의 flush 메서드가 자동으로 호출된다는 뜻이에요. PrintStream이 출력하는 모든 문자는 주어진 인코딩이나 문자셋, 또는 지정하지 않으면 기본 문자셋으로 바이트로 변환됩니다.
바이트가 아닌 문자를 써야 하는 상황에서는 PrintWriter 클래스를 사용해야 해요. 이 클래스는 항상 잘못된 문자 시퀀스와 매핑할 수 없는 문자 시퀀스를 문자셋의 기본 대체 시퀀스로 대체해요.
생성자
PrintStream(OutputStream out)— 자동 줄 플러시 없이 지정한OutputStream으로 새 프린트 스트림을 만들어요.PrintStream(OutputStream out, boolean autoFlush)—OutputStream과 줄 플러시 여부를 지정해 만들어요.PrintStream(OutputStream out, boolean autoFlush, String encoding)—OutputStream, 줄 플러시, 문자 인코딩을 지정해 만들어요.PrintStream(OutputStream out, boolean autoFlush, Charset charset)— 문자셋을 지정해 만들어요.PrintStream(File file)— 지정한 파일로 자동 줄 플러시 없이 만들어요.PrintStream(File file, Charset charset)— 지정한 파일과 문자셋으로 만들어요.PrintStream(String fileName)— 지정한 파일 이름으로 만들어요.PrintStream(String fileName, Charset charset)— 파일 이름과 문자셋으로 만들어요.
메서드
void print(...)—boolean,char,int,long,float,double,char[],String,Object등 다양한 타입의 표현을 출력해요.void println(...)— 출력 후 줄을 종료해요. 자동 플러시가 켜져 있으면 이때 플러시돼요.PrintStream printf(String format, Object... args)— 형식 문자열과 인자로 서식화된 출력을 해요.PrintStream format(String format, Object... args)— 형식화해 출력해요.PrintStream append(CharSequence csq)— 문자 시퀀스를 추가해요.void write(int b),void write(byte[] buf, int off, int len)— 바이트를 써요.boolean checkError()— 스트림의 오류 상태를 플러시하고 검사해요.void flush(),void close()— 각각 플러시와 닫기를 수행하며 예외를 던지지 않아요.Charset charset()— 이 인스턴스가 사용하는 문자셋을 반환해요.
PrintStream은 System.out과 System.err의 타입으로, 화면이나 파일에 다양한 값을 간단히 출력할 때 널리 사용돼요.