1. BufferedReader 클래스
입력값을 <문자열>로 반환.
Integer 클래스의 parseInt 메소드와 같이 정수모양으로 입력받은 문자열을 정수형으로 변환하는 것이 가능하다
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
//---------------------------- 위의 import 구문 입력 필수
// import java.io.*; 도 가능
public static void main(String[] args) throws IOException // throws 필수
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//------------------문자 입력을 읽는 장치--
// ---바이트 -> 문자 번역기--
// -바이트 입력값-
String name = br.readLine();
int a = Integer.parseInt(br.readLinr());
한 클래스 안에서 입력을 두 번 받는다고 BufferedReader 클래스의 인스턴스 생성을 두 번 할 필요는 없음
2. System.in.read() 메소드
입력 대기열로부터 <한 문자>만을 가져온다. 단, 입력받은 문자 그대로 가져오는 것이 아니라
<ASCII Code값(정수 형태)>로 반환한다.
import java.io.IOException;
//---------------------------- 위의 import 구문 입력 필수
// import java.io.*; 도 가능
public static void main(String[] args) throws IOException // throws 필수
char ch;
ch = (char)System.in.read();
// ---------------- 정수형으로 반환하기 때문에
// ------ 명시적 형 변환
BufferedReader 와 차이점이 있는데 한 글자를 입력받은 한 문자만을 가져오는 과정에서
한 문자 뒤에 있는(입력 대기열에 남아있는) \r 과 \n 을 스킵(건너뛰기) 해 주어야 다음 문자를 읽을 수 있다.
System.in.skip(2);
// 매개변수에(2)에 의해 두 글자를 읽어내지 않고 건너뛴다(버린다).
// ==> \r 과 \n 스킵
3. Scanner 클래스
입력을 토큰에 따라 분할하는 클래스. 디폴트(Default)로 사용되는 단락문자(토큰)는 공백이며 그 외의 문자로 설정 가능
import java.util.Scanner;
public static void main(String[] args) //throws IOException; 내장되어 있음. 생략가능
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String b = sc.next(); // 버퍼드의 readLine();
// 단락문자(토큰) 변경 useDelimiter();
sc = new Scanner(sc.next()).useDelimiter("\\s*,\\s*");
// 입력받은 데이터--------- ------------구분자 사용 메소드영역
// 역슬래쉬 두 개는 곧 한개 사용을 의미하기 때문에 \s*,\s*
}
'Study📚 > Java' 카테고리의 다른 글
자바 - Scanner 의 nextInt() 사용시 try ~ catch 무한반복 (0) | 2023.10.18 |
---|---|
자바 - 반복문 연습(별 찍기) (0) | 2023.09.26 |
자바 - 조건문과 반복문 (0) | 2023.09.25 |
자바 - 변수(variable) (0) | 2023.09.24 |
자바 - 생성자(Constructor) (1) | 2023.09.13 |