콘솔이란?
사용자의 입력을 받거나 사용자에게 문자열을 출력해주는 역할을 하는
컴퓨터와 사용자 사이의 상호작용을 담당하는 장치
콘솔입력
사용자가 직접 무언가를 입력하는 것.
★ "System.in" 을 사용하여 사용자로부터 입력을 받음.
입력 관련 임포트 내장 클래스
- InputStream : byte 단위의 데이터를 읽음, 길이 고정
- InputStreamReader : byte값들을 문자로 변환시켜 문자(char) 단위로 읽음, 길이 고정
- BufferedReader : 길이에 상관없이 입력값을 모두 받아들임 >> 즉, 문자열(string)을 읽음
- Scanner : 입력값이나 파일 등 다양한 소스에서 입력정보를 읽음.
따라 작성해보기
import java.io.IOException;
import java.io.BufferedReader; // 문자열(Strint)을 읽는다 | 입력값을 길이에 상관없이 받음
import java.io.InputStream; // byte를 읽는다 | 입력값 받아 아스키코드로 출력
import java.io.InputStreamReader; // 문자(character)를 읽는다 | 입력값 받아 값 그래로 출력
import java.util.Scanner;
public class Day19 {
public static void main(String[] args) throws IOException { // IOException 예외 처리를 뒤로 미룬다(throws)
InputStream in = System.in; //System.in은 InputStream의 객체
int a;
System.out.println("1byte만 입력");
a = in.read(); //read() : 1byte 입력 받음 >> int로 저장 (0~255정수값, 아스키코드값)
System.out.println(a); // 1byte 이상 입력해도 1byte만 받아서 출력함
System.out.println();
int b;
int c; // 2개의 변수 선언하면 2byte 입력값을 받을 수 있음
System.out.println("2byte 입력");
b = in.read();
c = in.read();
System.out.println(b);
System.out.println(c);
System.out.println();
byte[] d = new byte[3];
System.out.println("3byte짜리 배열 입력");
in.read(d);
System.out.println(d[0]);
System.out.println(d[1]);
System.out.println(d[2]);
System.out.println();
// InputStreamReader : 입력한 값을 아스키코드가 아니라 그대로 출력할 수 있음
InputStreamReader reader = new InputStreamReader(in); // 입력값으로 InputStream 객체인 'in' 필요
char[] e = new char[3];
System.out.println("3byte짜리 배열 입력 - 그대로 출력");
reader.read(e);
System.out.println(e);
System.out.println();
// BufferedReader : 길이에 상관없이 모든 입력 받음
BufferedReader br = new BufferedReader(reader); // 입력값으로 InputStreamReader의 객체인 'reader' 필요
String f = br.readLine(); // readLine() : 사용자가 입력한 문자열 전부를 읽음
System.out.println("문자열 입력");
System.out.println(f);
// Scanner
Scanner sc = new Scanner(System.in);
System.out.println(sc.next()); // 한개의 토큰을 읽어 출력 (토큰 : 정보의 최소 단위)
// System.out.println(sc.nextLine()); // 한 라인을 읽어 출력
// System.out.println(sc.nextInt()); // 정수를 읽어 출력
}
}