

출력 수행 명령어
1. print( )
2. println( )
3. printf( )

자바 프로그램은 JVM위에 실행되어 프로그램에 직접 운영체제 접근 불가
2.1.1 print( )로 출력하기

public class Main {
public static void main(String[] args) {
System.out.print("Hello");
System.out.print("JAVA");
}
}
print ⇨ "HelloJAVA"
소괄호 안 내용이 합쳐져서 출력 ⇨ 개행 문자 또는 줄 바꿈 문자 추가

∖n 하나하나 작성하기 번거로워 println( )을 사용해 보자.
특수 문자
∖b : 커서를 한 문자 앞으로 (백스페이스)
∖n : 줄 바꿈
∖r : 줄의 맨 앞으로 (캐리지 리턴)
∖t : 탭, 들여쓰기
∖0 : 빈칸(null)
2.1.2 println( )으로 줄 바꿔 출력하기

System.out.println("Hello");
System.out.println("JAVA");
∖n 없어도 각각 한줄씩 출력되는 것을 확인 할 수 있다.
2.2.1 read( )로 입력받기
read( ) 는 "키보드로 값을 입력받아라"라는 의미로 출력 명령어와 다르게 in으로 변경
System.in.read( );


read( )하단에 빨간색 라인은 문제 발생했다는 의미
어떤 문제인지 확인해보면 Unhandled exception: java.io.IOException 은 코드에서 예외처리가 되지 않았다는 의미이다.

자바에서 입출력과 관련한 예외 처리는 IOException라는 클래스에서 담당해서
import java.io.IOException; // 추가
public class Main {
public static void main(String[ ] args) throws IOException { // throws IOException 추가
System.out.println(System.in.read( ));
}
}
왜 예외처리를 해야할까?
System.in.read() 는 외부 입력(키보드 입력) 을 읽는 코드
“외부와의 입출력(IO)” 작업은 항상 실패할 가능성이 있다.

read( ) 명령어가 입력값을 아스키 코드로 받아서 숫자 1은 십진법으로 49 이다.
알파벳 a는 97출력
아스키 코드 : https://ko.wikipedia.org/wiki/ASCII

import java.io.IOException;
public class Main {
public static void main(String[ ] args) throws IOException {
System.out.println((char)System.in.read( ));
}
}
System.out.println((char)System.in.read( )); (char)은 형변환 처리되어 1을 입력할 경우 char형식의 1로 출력.
2.2.2 Scanner 클래스로 입력받기
스트림 (stream) : 입출력 장치와 프로그램 연결 통로
입력장치로 입력한 값 ⇨ 입력 스트림(System.in) ⇨ 프로그램 전달 ⇨ 프로그램 실행 결과 ⇨ 출력 스트림(System.out) ⇨ 출력 장치 표시

Scanner 클래스로 값을 입력받아 프로그램에서 사용하기 위해 저장하는 역할 ⇨ 변수

빨간 부분에 마우스를 올려두면 Import class 노출되는 것 클릭
Scanner클래스가 다른 패키지에 있어서 임포트 필요

상단 빨간 박스로 import java.util.Scanner; 추가된 것 확인
import java.util.Scanner;
public class Main {
public static void main(String[ ] args) {
Scanner scan = new Scanner(System.in);
System.out.println(scan.nextLine());
}
}
실행 후 하단 실행 창에 안녕하세요 입력 ⇨ Enter
동일하게 안녕하세요 출력되는 것 확인
scan.nextLine()은 사용자가 값을 입력하면 scan 변수에 저장 ⇨ nextLine( )으로 한 줄씩 읽어옴 ⇨ 읽어온 값을 println( ) 명령어로 출력

import java.util.Scanner;
public class Main {
public static void main(String[ ] args) {
Scanner scan = new Scanner(System.in);
System.out.println(scan.nextLine());
System.out.println(scan.next());
}
}
scan.next() 는 입력받은 내용 중에서 공백 문자 전까지만 출력
즉, 공백 문자 기준으로 단어 단위로 입력

scan.close( ) 입력 스트림을 닫지 않으면 계속해서 자원을 사용하는 상태로 메모리 낭비 명시적으로 닫아주면 문제 발생 예방