2021-03-22
- 정의
PrintWriter는 개체의 형식화된 표현을 텍스트 출력 스트림에 출력한다. 이 클래스는 PrintStream에 있는 모든 출력 메서드를 구현한다. 프로그램이 인코딩 되지 않은 바이트 스트림을 사용해야 하는 원시 바이트를 작성하는 메서드는 포함되어 있지 않다. ( 출처 자바 api )
PrintWriter는 writer를 상속받아 사용한다. 때문에 writer 대비 다양한 출력방식을 제공하게 된다. 구체적으로 어떤 메소드들을 구현하고 있는지 알아보도록 하자.
- print / println / printf
PrintWriter를 사용하는 가장 큰 이유중 하나인 print 관련 메서드이다. 특히 println 메서드는 자동 개행을 시켜주기 때문에 조금 더 쉬운 출력 코딩을 할 수 있게 도와준다.
package tPrintWriter;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args){
PrintWriter pw = new PrintWriter(System.out);
String str1 = "Hello";
pw.print(str1);
pw.print(str1);
pw.println(); // 개행
pw.print(str1); // 개행뒤 아랫줄에 출력
pw.println(); // 개행
pw.printf("%.2f", Math.PI);
// 소숫점 둘째 자리까지 원주율 출력
pw.flush();
pw.close;
}
}
위의 코드를 실행해 주면 아래와 같은 결과를 얻을 수 있다.
- append
기존의 지정된 저장된 파일 등에 추가적인 데이터를 입력할 때 사용 하는 메서드이다. 매개 값으로는 문자 / 문자열 모두 받을 수 있다. 아래의 예는 text 파일에 간단한 문자열을 입력하고 append 추가적인 문자열을 대입하는 코드이다.
package tPrintWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args){
String path = " 자신의 파일 경로를 입력 ";
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileWriter(path));
pw.println("Hello World");
pw.append('+');
pw.append(" Wow!!");
pw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
pw.close;
}
}
코드 실행시 아래와 같은 결과가 text 파일에 저장이 된다.
- checkError
checkError은 boolean의 리턴 값을 가지고 있다. PrintWriter 사용간 기본 출력 스트림에서 또는 형식 변환 중에 에러가 발생할 경우 true를 리턴하는 메서드이다.
package tPrintWriter;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args){
PrintWriter pw = new PrintWriter(System.out);
pw.println("Hello");
pw.flush();
boolean check = pw.checkError();
System.out.println("PrintWriter 사용간 에러 발생 여부 : " + check);
}
}
위와 같은 방법으로 사용할 수 있으며, 오류가 발생하지 않으면 아래와 같이 false의 값을 리턴한다.