Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 Console 클래스로 사용자 입력을 읽는 방법 완벽 가이드

Console 클래스란?

Java의 Console 클래스는 콘솔(키보드/화면) 장치로부터 데이터를 읽고 쓰는 데 사용되는 클래스입니다. 이 클래스는 키보드로부터 한 줄의 입력을 읽어들이는 readLine() 메서드를 제공하며, System.console() 메서드를 호출하여 Console 객체를 얻을 수 있습니다.

참고 − IDE와 같은 비대화형(non-interactive) 환경에서 이 프로그램을 실행하면 정상적으로 동작하지 않습니다. Console 클래스는 명령 프롬프트나 터미널과 같은 대화형 환경에서만 사용할 수 있기 때문입니다.

예제 코드

다음 Java 프로그램은 Console 클래스를 사용하여 사용자로부터 데이터를 입력받는 예제입니다.

import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
class Student {
    String name;
    int age;
    float percent;
    boolean isLocal;
    char grade;
    Student(String name, int age, float percent, boolean isLocal, char grade) {
        this.name = name;
        this.age = age;
        this.percent = percent;
        this.isLocal = isLocal;
        this.grade = grade;
    }
    public void displayDetails() {
        System.out.println("Details..............");
        System.out.println("Name: "+this.name);
        System.out.println("Age: "+this.age);
        System.out.println("Percent: "+this.percent);
        if(this.isLocal) {
            System.out.println("Nationality: Indian");
        } else {
            System.out.println("Nationality: Foreigner");
        }
        System.out.println("Grade: "+this.grade);
    }
}
public class ReadData {
    public static void main(String args[]) throws IOException {
        Console console = System.console();
        if (console == null) {
            System.out.println("Console is not supported");
            System.exit(1);
        }
        System.out.println("Enter your name: ");
        String name = console.readLine();
        System.out.println("Enter your age: ");
        int age = Integer.parseInt(console.readLine());
        System.out.println("Enter your percent: ");
        float percent = Float.parseFloat(console.readLine());
        System.out.println("Are you local (enter true or false): ");
        boolean isLocal = Boolean.parseBoolean(console.readLine());
        System.out.println("Enter your grade(enter A, or, B or, C or, D): ");
        char grade = console.readLine().toCharArray()[0];
        Student std = new Student(name, age, percent, isLocal, grade);
        std.displayDetails();
    }
}

코드 설명

위 코드의 핵심 흐름은 다음과 같습니다.

1. Console 객체 확인System.console()은 지원되지 않는 환경에서 null을 반환할 수 있습니다. 따라서 null 체크를 통해 안전하게 프로그램을 종료하도록 처리하는 것이 좋습니다.

2. readLine()으로 입력 받기readLine() 메서드는 항상 문자열(String)을 반환합니다. 따라서 숫자나 불리언 값이 필요한 경우 Integer.parseInt(), Float.parseFloat(), Boolean.parseBoolean() 같은 파싱 메서드를 사용해 적절한 타입으로 변환해야 합니다.

3. 문자(char) 입력 처리 − 한 글자를 입력받을 때는 console.readLine().toCharArray()[0]처럼 문자열을 문자 배열로 변환한 후 첫 번째 문자를 가져오는 방식을 사용합니다.

실행 결과

Enter your name:
Krishna
Enter your age:
26
Enter your percent:
86
Are you local (enter true or false):
true
Enter your grade(enter A, or, B or, C or, D):
A
Details..............
Name: Krishna
Age: 26
Percent: 86.0
Nationality: Indian
Grade: A

마무리

Console 클래스는 간단한 CLI(명령줄 인터페이스) 프로그램에서 사용자 입력을 처리할 때 유용합니다. 특히 readPassword() 메서드를 함께 사용하면 비밀번호 입력 시 화면에 문자가 표시되지 않도록 처리할 수 있다는 점도 기억해 두면 좋습니다. 다만 IDE 환경에서는 동작하지 않으므로, 반드시 터미널이나 명령 프롬프트에서 실행해야 한다는 점에 유의하세요.