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

Java에서 표준 입력으로 숫자 읽기: Scanner와 BufferedReader 활용법

이 글에서는 Java 프로그램에서 표준 입력(Standard Input)으로 숫자를 읽어오는 다양한 방법을 자세히 살펴보겠습니다. 가장 대표적인 방식은 Scanner 클래스의 nextInt() 메서드를 활용하는 것입니다.

Scanner.nextInt() 메서드란?

java.util 패키지에 포함된 Scanner 클래스의 nextInt() 메서드는 입력 스트림에서 다음 토큰을 정수(int) 타입으로 스캔하여 반환합니다. 인자 없이 호출된 nextInt()는 해당 Scanner 객체의 기본 진수(radix)를 기준으로 동작하며, 이는 nextInt(radix) 형태로 호출하는 것과 완전히 동일한 결과를 냅니다.

입력 및 출력 예시

입력:

55

출력:

입력값은 55입니다.

알고리즘

프로그램의 전체적인 흐름은 다음과 같습니다.

1단계: 시작
2단계: 정수형 변수 value 선언
3단계: 사용자에게 정수 입력 요청 또는 정수 값 정의
4단계: 값 읽기
5단계: 값 출력
6단계: 종료

예제 1: Scanner 클래스 사용하기

아래 예제는 사용자에게 직접 값을 입력받는 방식입니다. 콘솔에 안내 문구를 출력하고, nextInt() 메서드로 입력된 숫자를 읽어 화면에 표시합니다.

import java.util.Scanner;
public class PrintNumber{
   public static void main(String[] args){
      int value;
      System.out.println("필요한 패키지가 임포트되었습니다");
      System.out.println("값을 저장할 변수가 정의되었습니다");
      Scanner reader = new Scanner(System.in);
      System.out.println("reader 객체가 생성되었습니다\n");
      System.out.print("숫자를 입력하세요: ");
      value = reader.nextInt();
      System.out.println("nextInt 메서드를 사용해 숫자를 읽었습니다.");
      System.out.println("입력된 숫자:");
      System.out.println(value);
   }
}

실행 결과

필요한 패키지가 임포트되었습니다
값을 저장할 변수가 정의되었습니다
reader 객체가 생성되었습니다

숫자를 입력하세요: 55
nextInt 메서드를 사용해 숫자를 읽었습니다.
입력된 숫자:
55

예제 2: InputStreamReader와 BufferedReader 사용하기

두 번째 예제는 Scanner 대신 InputStreamReader 객체를 통해 사용자 입력을 받는 방법입니다. 이 방식은 문자 스트림을 버퍼링하여 효율적으로 처리할 수 있으며, 입력된 문자열을 Integer.parseInt() 메서드로 정수로 변환하는 과정이 추가됩니다.

import java.io.*;
public class readNum{
   public static void main(String args[]) throws IOException{
      InputStreamReader read = new InputStreamReader(System.in);
      System.out.println("InputStreamReader 클래스의 객체가 생성되었습니다");
      BufferedReader in = new BufferedReader(read);
      System.out.println("BufferedReader 클래스의 생성자가 생성되었습니다");
      System.out.println("숫자를 입력하세요: ");
      int number = Integer.parseInt(in.readLine());
      System.out.println("입력된 숫자: " + number);
   }
}

실행 결과

InputStreamReader 클래스의 객체가 생성되었습니다
BufferedReader 클래스의 생성자가 생성되었습니다
숫자를 입력하세요: 
입력된 숫자: 45

정리

Java에서 표준 입력으로 숫자를 읽는 방법은 크게 두 가지로 나눌 수 있습니다. 첫 번째는 Scanner.nextInt()를 사용하는 방법으로 코드가 간결하고 사용하기 쉬워 초보자에게 적합합니다. 두 번째는 InputStreamReader와 BufferedReader를 조합하는 방법으로, 입력받은 문자열을 직접 파싱해야 하지만 대용량 데이터 처리 시 성능상 유리할 수 있습니다. 상황에 맞는 방식을 선택하여 활용하시기 바랍니다.