[Java] 라이브러리 활용 - System 클래스

우쓰·2023년 11월 6일
0

Java

목록 보기
5/10

Content

System클래스

  • System 클래스를 이용하여 운영체제 일부 기능을 이용할 수 있다.

콘솔 출력

  • out 필드를 사용하여 콘솔에 원하는 문자열을 출력할 수 있다.
    System 클래스에서 가장 많이 사용했을 것이다.
  • err 필드는 내용이 빨간색으로 출력된다.
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());
    }
  }
}

키보드 입력

  • 키보드로 입력된 키를 읽기 위해 in 필드를 제공한다.
    in필드의 read() 메소드로 입력된 키의 코드값을 얻을 수 있다.
  • read() 메소드는 enter를 누르기 전까지 대기 하다가 enter키를 누르면 입력했던 키를 하나씩 읽기 시작한다.

프로세스 종료

  • 실행중인 프로그램을 프로세스로 관리하고, 자바에선 JVM 프로세스가 생성되는데
    이 프로세스가 main() 메소드를 호출한다.
    강제 종료하고 싶다면 System.exit() 메소드를 사용한다.

진행 시간 읽기

  • currentTimeMillis() : 0.001초 단위 진행된 시간을 리턴
  • nanoTime() : 0.000000001(1/10^9)초 단위 진행된 시간을 리턴
public class NanoTimeEx {

  public static void main(String[] args) {
    long startTime = System.nanoTime();

    int sum = 0;
    for (int i = 0; i < 100000000; i++) {
      sum += i;
    }

    long endTime = System.nanoTime();

    System.out.println("1 ~ 100000000 모두 더하는 \n"
        + "계산에 걸린 시간은 : " + (endTime - startTime) + "나노 초 입니다.");
  }
}

시스템 프로퍼티 읽기

  • 운영체제 종류, 사용자 정보, 자바 버전 등 기본 사양 정보들을 시스템 프로퍼티라 한다.
public class PropertyEx {

  public static void main(String[] args) {
    String os = System.getProperty("os.name");
    String userName = System.getProperty("user.name");
    String userHome = System.getProperty("user.home");

    System.out.println("os = " + os);
    System.out.println("userName = " + userName);
    System.out.println("userHome = " + userHome);

    System.out.println("key : value");
    Properties properties = System.getProperties();
    Set keys = properties.keySet();

    for (Object obKey : keys) {
      String key = (String) obKey;
      String value = System.getProperty(key);
      System.out.printf("%-40s: %s\n", key, value);
    }
  }
}

실행시키면 시스템 os, userName, userHome 을 출력하고
for문을 돌면서 프로퍼티 key, value를 가져온다.

I Learned

  • 진행시간 계산으로 실행시간을 구해볼수 있었다.
  • System클래스의 getProperty 메소드로 시스템 속성(운영체제, 디렉토리 경로 등)을 읽어오는 방법을 알게되었다.

0개의 댓글