• 프로그램은 일반적으로 사용자의 입력(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를 통해 공백을 기준으로 문자열을 하나씩 잘라 리턴