위와 같이 Scanner를 이용한 next(), nextInt(), nextFloat()이 있고 BufferedReader에서는 readLine()이 있습니다. read()는 것도 있지만 이 부분은 컴퓨터의 문자를 표현하는 부분에서 추가적으로 설명을 드리겠습니다. 우선 위에서 설명한 4가지만 알아서 사용을 하셔도 입력과 출력을 이용해서 간단한 프로그램을 만들 수 있습니다. 당연히 변수와 연산자도 사용을 하면 더욱더 좋습니다.
1. Scanner
Scanner를 사용해서 입력을 하는 것을 완벽하게 이해를 하시려면 우선 클래스와 객체를 이해 하셔야 하기 때문에 그때까지 입력을 하지 못하고 Java언어를 공부를 하는 것은 어렵습니다. 그래서 지금은 이런 방법으로 쓰면 입력을 할 수 있다고 생각을 하시고 입력을 하시면 됩니다. 추후에 클래스와 객체를 하면서 한번 더 언급을 해서 완벽한 이해를 도와드리겠습니다.
그럼 Scanner에서 입력 명령문 즉 메소드는 next(), nextInt(), nextFloat()가 있습니다.
next() : 문자열을 입력 받습니다.
nextInt() : 정수를 입력 받습니다.
nextFloat() : 실수를 입력 받습니다.
여기서 조심 하셔야 할 부분이 있습니다. next() 같은 경우 숫자를 입력하던 무엇을 입력하던 문자열로 모두가 표현이 가능 합니다.
하지만 nextInt(), nextFloat() 같은 경우에는 숫자 타입이기 때문에 문자인 A나 B등이 들어가면 Error가 발생해서 프로그램이 종료되게 됩니다.
이점을 유의 하시고 정수와 실수는 같은 숫자형이기 때문에 실수라고 해도 소수점을 안 넣어도 입력이 되고 정수여도 소수점을 넣으면 자동으로 제거에서 입력이 됩니다.
import java.util.Scanner; // Scanner를 사용하기 위한 Scanner 클래스 가져오기
public class InputTest {
public static void main(String[] args) {
// 입력을 하기위 한 Scanner 객체를 생성
Scanner sc = new Scanner(System.in);
int num = sc.nextInt(); //정수를 입력 받은 값을 정수 변수 num에 대입
float num1 = sc.nextFloat(); // 실수를 입력 받은 값을 실수 변수 num1에 대입
String str = sc.next();// 문자열을 입력 받은 값을 문자열 변수 str에 대입
System.out.println(num);// 변수 num을 출력
System.out.println(num1);// 변수 num1을 출력
System.out.println(str);// 변수 str를 출력
}
}
Scanner를 사용하기 위해서 import를 이용해서 Scanner클래스를 가지고 와야 합니다. 그리고 객체 생성의 과정 즉 사용할 준비를 한다고 생각을 하시면 됩니다. 그 이후에 명령문(메소드)를 이용해서 입력 명령을 하게 됩니다.
Eclipse 실행
2. BufferedReader
BufferedReader를 사용하려면 당연히 BufferedReader를 가져와서 사용을 해야 하고 BufferedReader를 사용하기 위해 InputStreamReader를 가지고 와서 같이 사용을 해야 합니다.
여기서 BufferedReader같은 경우 입력을 할 때 외부에서 입력이 들어 오는 상황이기 때문에 예외 처리를 해주는 클래스를 같이 사용을 하여야 사용이 가능 합니다.
readLine()은 문자열 한 줄을 그대로 입력을 받아서 사용을 할 수 있습니다.
※ 예외 처리 관련 해서는 추후 에 설명을 자세히 할 예정입니다.
// BufferReader를 사용하기 위해 BufferedReader 클래스를 가져오기
import java.io.BufferedReader;
// IOException을 사용하기 위해 IOException 클래스를 가져오기
import java.io.IOException;
// InputStreamReader를 사용하기 위해 InputStreamReader 클래스를 가져오기
import java.io.InputStreamReader;
public class InputTest2 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//입력을 하기 위해서 BufferedReader 객체를 생성시
//InputStreamReader 객체 넣어줍니다.
//생성을 하기 위해서 InputStreamReader 객체를 생성을 할 때
//System.in(입력 시스템을 넣어서 만든다.)
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
// 문자열 입력을 받아서 문자열 변수 str에 대입
String str = br.readLine();
// 문자열 변수 str 출력
System.out.println(str);
}
}