
자바 중급 문법 – 입출력과 파일 처리 – 0 – 표준 입출력 (System.in, System.out)
소제목: 자바의 표준 입출력 (System.in, System.out)
안녕하세요! 자바 중급 문법 시리즈의 첫 번째 주제인 “표준 입출력 (System.in, System.out)”에 대해 알아보겠습니다. 이번 포스트에서는 자바에서 표준 입출력을 다루는 방법과 관련된 내용을 소개하겠습니다.
표준 입출력이란?
표준 입출력은 프로그램과 사용자 또는 프로그램 간의 데이터를 주고받는 기본적인 방법입니다. 자바에서는 표준 입출력을 위해 System
클래스의 in
과 out
객체를 사용합니다. System.in
은 키보드로부터 데이터를 입력받는 입력 스트림을 나타내며, System.out
은 화면에 데이터를 출력하는 출력 스트림을 나타냅니다.
표준 입력 (System.in)
표준 입력은 사용자로부터 데이터를 입력받는 기능을 제공합니다. 대표적인 메소드로는 Scanner
클래스의 next()
와 nextInt()
가 있습니다. 이들 메소드는 사용자로부터 각각 문자열과 정수 값을 입력받아 반환합니다. 예를 들어, 사용자로부터 이름과 나이를 입력받아 출력하는 코드를 작성해보겠습니다.
import java.util.Scanner;
public class StandardInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.next();
System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt();
System.out.println("입력된 이름: " + name);
System.out.println("입력된 나이: " + age);
scanner.close();
}
}
위 코드에서 Scanner
클래스를 사용하여 System.in
으로부터 입력을 받고 있습니다. next()
메소드는 공백 문자를 기준으로 한 단어를 입력받습니다. 만약 한 줄 전체를 입력받으려면 nextLine()
메소드를 사용하면 됩니다.
표준 출력 (System.out)
표준 출력은 프로그램에서 결과를 화면에 출력하는 기능을 제공합니다. System.out
객체의 print()
와 println()
메소드를 사용하여 출력할 수 있습니다. print()
는 출력 후 줄바꿈을 하지 않고 그대로 출력하는 반면, println()
은 출력 후 줄바꿈을 수행합니다. 예를 들어, “Hello, World!”를 출력하는 코드를 작성해보겠습니다.
public class StandardOutputExample {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
위 코드에서 System.out.println()
메소드를 사용하여 “Hello, World!”를 출력하고 있습니다.
표준 입출력 사용 시 주의해야 할 점
표준 입출력을 사용할 때 몇 가지 주의해야 할 점이 있습니다.
-
Scanner 객체의 사용 후 닫아주기:
Scanner
객체를 사용한 후에는close()
메소드를 호출하여 닫아주어야 합니다. 이는 스트림 리소스를 제대로 해제하고 메모리 누수를 방지하는 데 도움이 됩니다. -
예외 처리: 입출력 작업은 예외가 발생할 수 있습니다.
IOException
과 관련된 예외를 처리하는 것이 중요합니다.try-catch
문을 사용하여 예외를 처리하거나, 메소드 선언부에throws
를 추가하여 예외를 던지도록 할 수 있습니다. -
다국어 처리: 표준 입출력은 기본적으로 문자열을 다루지만, 다국어 문자열의 입력과 출력을 제대로 처리하기 위해서는 문자 인코딩에 주의해야 합니다. 특히 한글과 같은 문자를 다루는 경우 UTF-8 인코딩을 사용하는 것이 좋습니다.
이상으로 자바의 표준 입출력에 대해 소개해드렸습니다. 자바 입문자들에게는 매우 중요한 내용이니 꼭 숙지하시길 바랍니다.
더 많은 자바 중급 문법과 관련된 내용을 알고 싶다면 다음 포스트도 기대해주세요!