System.out.print() // 화면에 정보를 출력하라는 의미입니다.
System.out.println()// 화면에 정보를 출력하고 줄 바꿈을 하라는 의미입니다.
System.out.printf() // 형식화한 문자열을 화면에 출력하라는 의미합
import java.util.Date;
public class FormatExample{
public static void main(String[] args){
int a = 12345;
System.out.printf("정수: [%d][%10d][%-10d][%010d]\\n",a,a,a,a);
double b = 123.456;
System.out.printf("실수: [%f][%10.2f][%-10.4f][%010.4f]\\n",b,b,b,b);
String c = "hello";
System.out.printf("문자: [%s][%10s][%-10s][%10S][%5.2s]\\n",c,c,c,c,c);
System.out.printf("논리: [%b][%B]\\n", true, false);
Date d = new Date();
System.out.printf("시간: [%tH:%tM:%tS]\\n", d, d, d);
System.out.printf("날짜: [%1$ty-%1$tm-%1$td]", d); //1$ --> 첫번쨰 것을 매핑한다는 의미
}
}

System.in.read() - 바이트 단위 입력System.in은 표준 입력(키보드) 스트림이며 바이트 단위로 입력을 처리한다.System.in.read()는 1바이트만 읽기 때문에 영어, 숫자, 특수문자만 입력 가능하며, 한글은 처리할 수 없다.int keyCode = System.in.read();
System.out.println(keyCode); // 예: 'A' 입력 시 65 출력
System.out.printf("%c", keyCode); // A 출력
비유: 종이 한 장만 집을 수 있는 집게. 두꺼운 책(=한글)은 못 집는다.
System.in을 문자로 처리하게 하여 한글 입력도 가능하게 만든다.Reader reader = new InputStreamReader(System.in);
int keyCode = reader.read();
System.out.println(keyCode);
System.out.println((char)keyCode);
비유: 손가락 대신 집게를 바꾸면 책도 집을 수 있게 되는 것처럼, InputStreamReader는 더 큰 문자를 처리할 수 있게 도와준다.
System.in.read()를 통해 여러 바이트를 배열로 입력받고 문자열로 변환한다.