본문 바로가기

라이브러리 활용 - java.base 모듈

System 클래스

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