- 프로그램은 일반적으로 사용자의 입력(input)을 통해 연산 후 출력(output)을 해주는 역할을 수행
- 예시)게임, 계산기 등 일반적인 프로그램 상황
- JAVA의 표준 입출력 라이브러리
- System이라는 표준 입출력 라이브러리 정의하여 제공
- 출력
- 사용자가 보는 모니터에 개발자가 요청한 내용을 컴퓨터가 출력해주는 것
- System.out 사용
- System.out.println은 자동 줄바꿈
- System.out.print는 줄바꿈 X
- 예시)System.out.println(”Hello World”);
- 입력
- System.in 및 java.util.Scanner사용
- System.in은 바이트 스트림형태의 입력을 받는 기능을 하고, 이는 일반적으로 키보드를 통한 문자 입력을 의미
- Scanner는 Java에서 입력을 읽어오는 도구로서, 키보드 입력의 바이트 스트림 뿐만 아니라 파일 입력 등을 java의 문자로 읽어오는 도구로도 사용
- 예시)Scanner scanner = new Scanner(System.in);
- 키보드로 입력받은 데이터는 기본적으로 숫자든 문자든 문자형태로 scanner에 담기고, 이를 원하는 형태로 사용하기 위해서는 변환이 필요
- 자료형별 변환
- 문자열 입력(문자열을 한줄씩 read)
- String str = scanner.nextLine();
- 다른 타입으로 자동형변환
- 정수형 입력 변환
- int number = scanner.nextInt();
- 실수형 입력 변환
- float floatNumber = scanner.nextFloat();
- 메모리 해제
- scanner.close();
- Scanner는 java를 벗어나, 운영체제 등 시스템의 리소스를 사용하므로 jvm의 자동 메모리 관리 범위를 벗어나므로 별도로 해제해주는 것이 좋은 코딩
- System.in 및 BufferedReader, InputStreamReader사용
- 자바에서 키보드 입력의 바이트 스트림은 기본적으로 바이트 단위로 데이터를 전송
- InputStreamReader를 통해 byte기반 스트림을 2바이트 문자 char형으로 기반으로 변환
- BufferedReader는 자바에서 입력을 버퍼링하여 성능을 향상시키는 클래스
- 사용예시
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String input = br.readLine(); //한줄을 String으로 읽기
- String[] inputArr = br.readLine().split(" "); //한줄을 String으로 읽어 배열로 만들기
- StringTokenizer st = new StringTokenizer(br.readLine()); //한줄을 읽어 StringTokenizer객체로 변환
String stInput = st.nextToken(); //StringTokenizer를 통해 공백을 기준으로 문자열을 하나씩 잘라 리턴