Java를 배워보자/5. 입출력

자바 콘솔 입출력 (Scanner, PrintStream)

_Blue_Sky_ 2024. 9. 27. 00:23
728x90
728x90
 

자바 콘솔 입출력: Scanner와 PrintStream 심층 분석

서론

자바 프로그램이 사용자와 상호 작용하는 가장 기본적인 방법 중 하나는 콘솔 입출력입니다. 콘솔은 텍스트 기반의 사용자 인터페이스로, 키보드를 통해 입력을 받고 화면에 결과를 출력합니다. 자바에서는 Scanner 클래스를 통해 사용자 입력을 받고, PrintStream 클래스를 통해 결과를 출력하는 것이 일반적입니다. 이 글에서는 Scanner와 PrintStream 클래스의 기능과 사용법을 자세히 알아보고, 다양한 예제를 통해 이해를 돕겠습니다.

Scanner 클래스

Scanner 클래스는 java.util 패키지에 속하며, 다양한 형태의 입력 데이터를 읽어 들이는 데 사용됩니다. Scanner를 사용하기 위해서는 System.in 객체를 생성자의 인자로 전달하여 Scanner 객체를 생성합니다. System.in은 표준 입력 스트림으로, 키보드 입력을 나타냅니다.

import java.util.Scanner;

public class ScannerExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 정수 입력 받기
        System.out.print("정수를 입력하세요: ");
        int num = scanner.nextInt();
        System.out.println("입력한 정수는 " + num + "입니다.");

        // 문자열 입력 받기
        System.out.print("문자열을 입력하세요: ");
        String str = scanner.nextLine();
        System.out.println("입력한 문자열은 " + str + "입니다.");
    }
}
 
  • nextInt(): 정수를 입력받습니다.
  • nextLine(): 한 줄의 문자열을 입력받습니다.
  • nextDouble(): 실수를 입력받습니다.
  • nextBoolean(): 불리언 값을 입력받습니다.

주의: nextLine() 메서드를 사용할 때는 이전 입력에서 남아있는 개행 문자를 처리해 주어야 합니다. 예를 들어, nextInt()를 호출한 후 nextLine()을 호출하면, nextInt()에서 입력받은 정수 다음에 입력한 개행 문자가 nextLine()에 의해 읽혀 버릴 수 있습니다. 이를 방지하기 위해 nextInt() 호출 후에 한 번 더 nextLine()을 호출하여 남아있는 개행 문자를 버려주는 것이 좋습니다.

PrintStream 클래스

PrintStream 클래스는 java.io 패키지에 속하며, 다양한 형태의 데이터를 출력하는 데 사용됩니다. System.out은 PrintStream 객체의 인스턴스로, 표준 출력 스트림을 나타냅니다.

public class PrintStreamExample {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); // 개행 포함 출력
        System.out.print("This is a print statement. "); // 개행 없이 출력
        System.out.printf("The value of pi is %.2f\n", Math.PI); // 서식 지정 출력
    }
}
  • println(): 지정된 값을 출력하고 줄을 바꿉니다.
  • print(): 지정된 값을 출력하고 줄을 바꾸지 않습니다.
  • printf(): 서식을 지정하여 출력합니다.

다양한 예제

  • 계산기 프로그램: 사용자에게 두 개의 숫자를 입력받아 사칙연산 결과를 출력하는 프로그램
  • 문자열 역순 출력: 사용자에게 문자열을 입력받아 역순으로 출력하는 프로그램
  • 숫자 맞추기 게임: 컴퓨터가 임의의 숫자를 생성하고, 사용자가 숫자를 맞추도록 하는 게임
  • 파일 읽기/쓰기: 파일에서 데이터를 읽어와 화면에 출력하거나, 사용자 입력을 파일로 저장하는 프로그램

결론

Scanner와 PrintStream 클래스는 자바 콘솔 입출력의 핵심 클래스입니다. 이 두 클래스를 효과적으로 사용하면 사용자와 상호 작용하는 다양한 콘솔 프로그램을 개발할 수 있습니다.

 

심화 학습:

  • BufferedReader: 더 효율적인 문자열 입력을 위한 클래스
  • BufferedWriter: 더 효율적인 문자열 출력을 위한 클래스
  • File 클래스: 파일을 다루는 클래스
  • 예외 처리: 입력 오류 등 예상치 못한 상황에 대한 처리
728x90
728x90

'Java를 배워보자 > 5. 입출력' 카테고리의 다른 글

자바 파일 입출력  (0) 2024.09.27