>  기사  >  Java  >  System.err 및 System.out을 사용하는 데 몇 가지 문제가 있습니다.

System.err 및 System.out을 사용하는 데 몇 가지 문제가 있습니다.

PHP中文网
PHP中文网원래의
2017-06-20 10:09:271939검색

오늘 동료가 System.err 및 System.out을 사용할 때 몇 가지 사소한 문제에 직면했습니다.

몇 가지 정보를 읽은 후 요약했습니다:

 1 두 가지에 대한 JDK 문서의 설명:

 out: " 출력 스트림. 이 스트림은 열려 있으며 출력 데이터를 받아들일 준비가 되어 있습니다. 일반적으로 이 스트림은 모니터 출력 또는 호스트 환경이나 사용자가 지정한 다른 출력 대상에 해당합니다.

  err:  "표준" 오류 출력 스트림. 이 스트림은 열려 있으며 출력 데이터를 받아들일 준비가 되어 있습니다. 일반적으로 이 스트림은 모니터 출력 또는 호스트 환경이나 사용자가 지정한 다른 출력 대상에 해당합니다. 관례적으로 이 출력 스트림은 사용자 출력 스트림(변수 out의 값)이 일반적으로 모니터링되지 않는 일부 파일이나 기타 대상으로 리디렉션된 경우에도 사용자에게 즉시 주의를 기울여야 하는 오류 메시지나 기타 정보를 표시하는 데 사용됩니다. 계속해서. .

 2.out 및 err. 한 가지 차이점은 out은 종종 캐시되는 반면 err은 캐시되지 않는다는 것입니다(기본 설정, 변경 가능). 따라서 표준 오류를 사용하여 무언가를 인쇄하면 즉시 화면에 표시될 수 있는 반면, 표준 출력이 인쇄하는 경우 함께 인쇄하려면 몇 개의 문자가 더 필요할 수 있습니다. 응용 프로그램에서 표준 출력과 표준 오류를 혼합하면 이 문제가 나타날 수 있습니다.

테스트 코드:

public class Test2 {static{
        System.out.println("1");
    }public static void main(String[] args) {
        System.err.println("2");new Test2();
    }public Test2() {
        System.out.println("3");
    }
    
}

테스트 결과: 1과 3의 위치는 상대적으로 변하지 않으며, 2의 위치는 무작위로 나타나는 것을 피하세요!

  3.log4j 로깅이 사용된 경우 System .err은 로그에 기록되지만 System.out은 기록되지 않습니다.

 ps: System.err 인쇄는 Eclipse에서 빨간색입니다. System.out은 파란색입니다.

위 내용은 System.err 및 System.out을 사용하는 데 몇 가지 문제가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.