JAVA/포스팅

자바 표준입출력 setErr()

짜집퍼박사(짜박) 2023. 11. 26. 20:21

자바의 System 클래스에는 setErr 메서드가 있습니다. 이 메서드는 표준 에러 스트림(System.err)을 변경하는 데 사용됩니다. 즉, 이 메서드를 사용하면 표준 에러가 다른 출력 스트림으로 바뀝니다.

메서드 시그니처는 다음과 같습니다.

public static void setErr(PrintStream err);

여기서 err은 새로운 표준 에러 스트림을 나타냅니다. 이를 통해 표준 에러를 다른 출력 대상으로 변경할 수 있습니다.

예를 들어, 파일로의 출력 스트림으로 표준 에러를 변경하는 예제는 다음과 같습니다.

import java.io.*;

public class RedirectSystemErr {
    public static void main(String[] args) {
        // 현재의 표준 에러(System.err)을 보관
        PrintStream originalErr = System.err;

        try {
            // 파일로의 출력 스트림 생성
            PrintStream fileErr = new PrintStream(new FileOutputStream("error.txt"));

            // 표준 에러를 파일로 변경
            System.setErr(fileErr);

            // 변경된 표준 에러에 메시지 출력
            System.err.println("This error message will be written to the file.");

            // 기존의 표준 에러로 복원
            System.setErr(originalErr);

            // 원래의 표준 에러로 메시지 출력
            System.err.println("This error message will be printed to the console.");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

이 예제에서는 표준 에러를 error.txt 파일로 변경한 후, 다시 원래의 표준 에러로 복원합니다. 변경된 표준 에러에 출력되는 메시지는 파일로 기록되고, 원래의 표준 에러에 출력되는 메시지는 콘솔에 표시됩니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 RandomAccessFile  (0) 2023.11.26
자바 표준입출력 setIn()  (0) 2023.11.26
자바 표준입출력 setOut()  (0) 2023.11.26
자바 System.err  (0) 2023.11.26
자바 System.out  (0) 2023.11.26