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 환경에서는 동작하지 않으므로, 반드시 터미널이나 명령 프롬프트에서 실행해야 한다는 점에 유의하세요.