System 클래스
- System 클래스의 정적 static 필드와 메소드를 이용하면 프로그램 종료, 키보드 입력, 콘솔(모니터) 출력, 현재 시간 읽기, 시스템 프로퍼티 읽기 등이 가능
출처, 이것이 자바다
콘솔 출력
package ch12.sec04;
public class ErrExample {
public static void main(String[] args) {
//숫자로 변환하다 예외발생
try {
int value = Integer.parseInt("1oo");
} catch(NumberFormatException e) {
System.err.println("[에러 내용]");
System.err.println(e.getMessage());
}
}
}
키보드 입력
package ch12.sec04;
import java.io.IOException;
/* System.in 표준입력스트링 예제
* : 키보드로 입력한 데이터를 읽는 기능을 제공.
*
* 아스키코드
* 유니코드(아스키코드 포함)
*
* Enter 키 : 13, 10 값 정의.
* A 키 : 65, a 키 : 97 둘의 차이 32
*/
public class InExample {
public static void main(String[] args) throws IOException {
int speed = 0;
int keyCode = 0;
while(true) {
if(keyCode != 13 && keyCode != 10) {
if(keyCode == 49) { //숫자 1키
speed++;
}else if(keyCode == 50) { //숫자 2키
speed--;
}else if(keyCode == 51) { //숫자 3키
break;
}
System.out.println("------------------------");
System.out.println("1. 증속 | 2. 감속 | 3. 중지");
System.out.println("------------------------");
System.out.println("현재 속도= " + speed);
System.out.println("선택: ");
}
//콘솔환경에서 키보드 입력을 할수 있는 상태제공. 키보드 입력 엔터
//키보드 1, 2, 3 중 하나입력 Enter -> 입력정보가 버퍼(임시기억장소) 저장됨 -> read()메소드에 의하여 하나 읽어들임
//read()메소드는 버퍼에 정보가 존재하면 하나씩 읽어들이고, 없으면 콘솔상태에서 키보드로 값을 입력할 수 있는 상태로 만들어준다.
//버퍼상태 : 1번 입력후 Enter누르면 49, 13, 10
keyCode = System.in.read();
}
System.out.println("프로그램 종료");
}
}
프로세스 종료
package ch12.sec04;
/*
* JVM프로세스 종료
* System.exit(0)
*/
public class ExitExample {
public static void main(String[] args) {
for(int i=0; i<10; i++) {
System.out.println(i);
if(i == 5) {
System.out.println("프로세스 강제 종료");
System.exit(0); //종료
}
}
}
}
진행 시간 읽기
출처, 이것이 자바다
package ch12.sec04;
/*
* 시간측정 : 특정코드가 동작되는 처리시간
* 1970년 1월 1일 0시를 시작으로 하여, 시간측정
*
* System.nanoTime() : 나노초 단위. 10억분의 1초.
* System.currentTimeMillis() : 밀리세컨드 단위. 1초를 1000분의 1로 환산. 예> 1000ms = 1초
*/
public class MeasureRunTimeExample {
public static void main(String[] args) {
// System.out.println(System.nanoTime());
long time1 = System.nanoTime(); //연산 시작 시간
int sum = 0;
for(int i=1; i<=1000000; i++) {
sum += i;
}
long time2 = System.nanoTime(); //연산 시작 끝난 시간
System.out.println("1~1000000까지의 합: " + sum);
System.out.println("계산에 " + (time2-time1) + " 나노초가 소요되었습니다.");
}
}
시스템 프로퍼티 읽기
출처, 이것이 자바다
package ch12.sec04;
import java.util.Properties;
import java.util.Set;
/*
* 시스템 프로퍼티 읽기
* - 운영체제 종류및 사용자 정보, 자바 버전등 기본사양정보 확인
*/
public class GetPropertyExample {
public static void main(String[] args) {
String osName = System.getProperty("os.name");
String userName = System.getProperty("user.name");
String userHome = System.getProperty("user.home");
System.out.println(osName);
System.out.println(userName);
System.out.println(userHome);
//전체 키와 값을 출력
System.out.println("---------------------");
System.out.println(" key: value");
System.out.println("---------------------");
//컬렉션
Properties props = System.getProperties();
Set keys = props.keySet();
for(Object object : keys) {
String key = (String) object;
String value = System.getProperty(key);
System.out.printf("%-40s: %s\n", key, value);
}
}
}
'라이브러리 활용 - java.base 모듈' 카테고리의 다른 글
수학 클래스 (0) | 2023.01.30 |
---|---|
포장 클래스 (0) | 2023.01.30 |
문자열 클래스 (0) | 2023.01.27 |
Object 클래스 (0) | 2023.01.26 |
java.base 모듈 (0) | 2023.01.26 |