Java System 클래스 상세 설명-in,out,err
package jdk.lang;
public class SystemInspection {
public static void main(String[] args) throws Exception {
System.out.println(“Hello World”);
}
}
본 고 는 이러한 표준 입력(in),출력(out)과 오류 흐름(err)의 사용 과 원 리 를 상세 하 게 설명 할 것 이다.먼저 더 복잡 한 예 를 보 자.
package jdk.lang;
public class SystemIOE {
public static void main(String[] args) throws Exception {
System.out.println("Hello Out");
System.err.println("Hello Error");
byte[] b = new byte[1024];
int count = System.in.read(b);
System.out.println(new String(b, 0, count));
}
}
eclipse 에서 실행,출력:
Hello Out
Hello Error
Hello In
Hello In
분석:
사실 out,in 과 err 는 정적 속성 입 니 다.
public final static InputStream in = nullInputStream();
public final static PrintStream out = nullPrintStream();
public final static PrintStream err = nullPrintStream();
그들 은 사실 private static void initializeSystem Class()에서 초기 화 되 었 습 니 다.
FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
setIn0(new BufferedInputStream(fdIn));
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
setErr0(new PrintStream(new BufferedOutputStream(fdErr, 128), true));
FileDescriptor.out,FileDescriptor.in 과 FileDescriptor.err 는 사실
public static final FileDescriptor in = standardStream(0);
public static final FileDescriptor out = standardStream(1);
public static final FileDescriptor err = standardStream(2);
더 내 려 가면 네 이 티 브 호출 이 야.
또한 System 류 는 in,out,err 를 설정 하 는 방법 도 제공 합 니 다.그러면 로그 시스템 을 실현 할 수 있 습 니 다.다음 코드 실행:
package jdk.lang;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
public class SystemIOE {
public static void main(String[] args) throws Exception {
redirect();
helloIO();
}
private static void helloIO() throws IOException {
System.out.println("Hello Out");
System.err.println("Hello Error");
byte[] b = new byte[1024];
int count = System.in.read(b);
System.out.println(new String(b, 0, count));
}
public static void redirect() throws FileNotFoundException {
InputStream in = new BufferedInputStream(new FileInputStream(new File(
"c:/in.txt")));
System.setIn(in);
PrintStream out = new PrintStream(new FileOutputStream(new File(
"c:/out.log")));
System.setOut(out);
PrintStream err = new PrintStream(new FileOutputStream(new File(
"c:/err.log")));
System.setErr(err);
}
}
나중에 logback 의 실현 이 이런 종 류 를 사 용 했 는 지 다시 보 겠 습 니 다.계속
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.