Java System 클래스 의 ID 지원
5724 단어 System
No
상수
묘사 하 다.
1
public static finnal PrintStream out
표준 출력 을 표시 합 니 다. 출력 위 치 는 모니터 입 니 다.
2
public static final PrintStream err
오류
3
public static final InputStream in
키보드 입력
System.out
System. out 은 PrintStream 의 인 스 턴 스 입 니 다. 자주 사용 하 는 방법 은 화면 에 정 보 를 인쇄 하 는 것 입 니 다. 물론 System. out 을 사용 하면 직접 OutputStream 을 예화 할 수 있 습 니 다.
package org.systemiddemo;
import java.io.IOException;
import java.io.OutputStream;
public class SystemIoDemo01 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
OutputStream output = System.out; //
String str = "Hello";
output.write(str.getBytes()); //
output.close();
}
}
System.err
System. err 는 잘못된 출력 을 표시 합 니 다.
package org.systemiddemo;
public class SystemIoDemo02 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Integer.parseInt("hello");
}catch(Exception e){
System.out.println(e);
System.err.println(e);
}
}
}
코드 자체 에서 아무런 문제 가 관찰 되 지 않 고 eclipse 에서 만 빨간색 글꼴 이 나타 납 니 다.실제로 상기 두 상수 에 대해 구별 하려 면 개념 적 으로 만 말 할 수 있다.
System. out 의 일반적인 정 보 는 사용자 에 게 보 여 주 려 고 합 니 다.
System. err 의 일반적인 정 보 는 사용자 에 게 보 여주 고 싶 지 않 습 니 다.
System.in
System. in 은 실제 적 으로 키보드 의 입력 을 표시 합 니 다. 이 조작 을 사용 하면 키보드 가 데 이 터 를 입력 하 는 기능 을 완성 할 수 있 습 니 다.
package org.systemiddemo;
import java.io.IOException;
import java.io.InputStream;
public class SystemIoDemo03 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
InputStream input = System.in; //
System.out.print(" :");
byte b[] = new byte[20]; //
int len input.read(b); //
System.out.println(" :"+new String(b,0,len));
}
}
이 때 키보드 입력 기능 이 구현 되 었 으 나 이 프로그램 은 사용 시 길이 제한 이 있 습 니 다.그리고 중국 어 를 입력 할 때 도 문제 가 발생 할 수 있 습 니 다. 그러면 이 때 는 다른 방식 으로 크기 를 지정 하지 않 고 읽 으 면서 끝 날 지 여 부 를 판단 할 수 있 습 니 다.
package org.systemiddemo;
import java.io.IOException;
import java.io.InputStream;
public class SystemIoDemo04 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
InputStream input = System.in; //
System.out.print(" ");
int temp = 0 ; //
StringBuffer str = new StringBuffer();
while ((temp = input.read()) != -1){
char c = (char)temp; //
if (c == '
'){ //
break; //
}
str.append(c);
}
System.out.print(str.toString());
}
}
이 때 데 이 터 를 읽 을 때 길이 제한 이 없습니다.
하지만 중국 어 를 입력 할 때 제대로 읽 을 수 없습니다. 한 바이트 씩 읽 을 때마다 전체 로 읽 어야 하기 때문에 더 좋 은 읽 기 동작 을 수행 하려 면 다음 버 프 레 드 리더 클래스 만 사용 할 수 있 습 니 다.
출력
System. out, System. err 는 모두 고정된 출력 목표 가 있 습 니 다. 아니, 모두 화면 입 니 다.
System. in 은 고정된 입력 목표 가 있 습 니 다. 모두 키보드 입 니 다.
그러나 System 클래스 에서 일련의 입 출력 방향 을 바 꾸 는 방법 을 제공 하여 System. out, System. err, System. in 의 입 출력 위 치 를 바 꿀 수 있 습 니 다.
System. out 재 설정: public static void setOut (PrintStream out)
System. err 리 셋: public static void setErr (PrintStream err)
System. in 리 셋: public static void setIn (InputStream in)
범례: 출력 재 설정 검증
package org.systemiddemo;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
public class SystemIoDemo05 {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
File file = new File("D:"+File.separator+"demo.txt");
System.setOut(new PrintStream(new FileOutputStream(file)));
System.out.println(" ");
}
}
알림:
이전에 System. err 는 사용자 가 보고 싶 지 않다 고 말 한 적 이 있 으 며, System. out 은 사용자 가 보고 싶 어 하기 때문에 개발 에 서 는 System. err 의 출력 위 치 를 바 꾸 는 것 을 권장 하지 않 고 System. out 의 출력 위치 만 바 꾸 는 것 을 권장 합 니 다.
package org.systemiddemo;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
public class SystemIoDemo06 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("D:"+File.separator+"demo.txt");
System.setErr(new PrintStream(new FileOutputStream(file)));
try{
Integer.parseInt("hello");
}catch(Exception e){
System.err.println(" ");
}
}
}
범례: 입력 재 설정
package org.systemiddemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class SystemIoDemo07 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file = new File("D:"+File.separator+"demo.txt");
System.setIn(new FileInputStream(file));
InputStream input = System.in;
byte[] b = new byte[20]; //
int len = 0;
len = input.read(b); //
System.out.println(new String(b,0,len));
}
}
일반 System. in 의 동작 은 가지 않 는 것 이 좋 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bring application to foreground with a keypressFrom Forum Nokia Wiki Inorder to capture the keys while you application under background you've to override CCoeAppUi::H...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.