1. Java의 입력 방법
: Java 사용 시 입력 방법은 크게 두 가지 방법을 사용한다. Scanner를 이용하여 입력하는 방법과 BufferedReader를 이용하여 입력하는 방법
2. Scanner
: 자바에서 입력받을 때 주로 쓰이는 클래스로 정수, 실수, 문자열을 읽어올 수 있다.
import java.util.Scanner; // scanner를 사용하기 위해 외부 클래스 호출 (java.util 패키지에 포함된다)
public class main{
public static void main(String args[]){
Scanner scan = new Scanner(System.in); // 객체 생성 후 System.in으로 입력한 값을 바이트 단위로 읽는다.
String name;
int age;
System.out.print("이름 :");
name = scan.next();
System.out.print("나이 :");
age = scan.nextInt();
sc.close(); // Scanner가 참조하고 있는 스트림을 닫는다.
}
}
->Scanner 클래스를 이용한 입력은 데이터의 양이 적을 때는 문제가 되지 않으나 그 수가 커지면 Scanner를 이용하기에 한계를 느낄 수 있다.
3. BufferedReader
: Buffer에 있는 IO 클래스로 입력된 데이터가 바로 전달되지 않고 중간에 버퍼링이 된 후 전달된다. BufferedReader는 Enter만 경계로 인식하고 받은 데이터가 String으로 고정되기 때문에 데이터 가공 작업이 필요하다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 선언
String str = br.readLine(); // readLine() 메소드를 이용해 입력
int i = Integer.parseInt(br.readLine()); // readLine() 메소드는 String 고정이기때문에 형변환을 해줘야한다.
-StringTokenizer
: BufferedReader는 Line단위로만 나뉘어지기때문에 공백단위로 데이터를 가공하려면 따로 작업을 해주어야한다. 이때 가장 많이 사용하는 방법으로는 StringTokenizer의 nextToken()함수를 사용하는 방법이다.
StringTokenizer st = new StringTokenizer(br.readLine()); // 선언
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
-> nextToken()을 통해 순서대로 호출한다.
4. BufferedWriter
: 자바에서 출력할 때 System.out.println() 함수를 많이 사용한다. Scanner와 마찬 가지로 적은 양의 출력일 경우 성능차이가 미세하겠지만 많은 양의 출력에서는 Buffer를 활용하는게 좋다.
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); // 선언
String str = "Hello";
bw.write(str + "\n"); // 출력
bw.flush(); // 남아있는 데이터 모두 출력
bw.close(); // stream 종료
-> BufferedWriter의 경우 Buffer를 잡아 놓았기 때문에 반드시 flush()와 close()를 호출해주어야한다.
'Programming > JAVA' 카테고리의 다른 글
자바의 클래스 (0) | 2019.12.27 |
---|---|
자바의 참조 타입과 배열 (0) | 2019.12.23 |
자바의 제어문 (조건문과 반복문) (0) | 2019.12.19 |
자바의 연산 (0) | 2019.12.17 |
자바의 변수와 타입 (0) | 2019.12.13 |