사용자가 프로그램과 대화하기 위해서는 사용자와 프로그램 사이의 입출력을 담당하는 수단이 필요 합니다.
자바에서는 모든 것이 객체로 표현되므로, 입출력을 담당하는 수단 또한 모두 객체 입니다.
System.out.println(”출력 내용");
시스템의 출력 장치로 내용을 출력 한다는 의미
메소드 | 의미 |
---|---|
println(내용) | 내용 출력 후 줄 바꿈 |
print(내용) | 내용 출력 |
printf(”서식”, 출력값) | 출력 값을 서식에 맞춰서 출력 (C언어 서식과 동일) |
서식지정자 : %d, %ld, %u, %f, %.2f, %2d, %s, %c , %%
이스케이프시퀀스 : \n, \r, \t, \b, \\
%6d : 6자의 정수 공간을 확보하고 오른쪽 정렬
%-10.2f : 10자리 공간을 확보하고 왼쪽 정렬
%6s : 문자열공간을 6자리 확보하고 오른쪽 정렬
package data_ex1;
// System.out
public class DataType {
public static void main(String[] args) {
String name = "Lee";
String addr = "Seoul City";
char gender = 'F';
int age = 18;
int kor = 99;
int eng = 88;
int mat = 40;
double aver = 0.0;
// 자바 스타일 (print 오버로딩)
System.out.println("====== Java Style output =======");
System.out.println("Name : " + name);
System.out.println("Address : " + addr);
System.out.println("Gender : " + gender);
System.out.println("Age : " + age);
System.out.println("Total : " + (kor + eng + mat));
System.out.println("Average : " + ((double)(kor + eng + mat) / 3));
// C언어 스타일 (printf 서식지정자)
System.out.println("====== C Style Output ======");
System.out.printf("Name : %s\n", name);
System.out.printf("Address : %s\n", addr);
System.out.printf("Gender : %c\n", gender);
System.out.printf("Age : %d\n", age);
System.out.printf("Total : %d\n", (kor + eng + mat));
System.out.printf("Average : %.2f\n", (double)(kor + eng + mat)/3);
}
}
자바 프로그램은 운영체제상에서 바로 실행되는 것이 아니라 JVM위에서 실행됩니다.
따라서 운영체제의 모든 기능을 자바 코드에서 직접 접근하기가 어렵습니다.
하지만, java.lang 패키지에 속하는 System 클래스를 이용하면 운영체제의 일부 기능을 이용할 수 있습니다.
즉 프로그램의 종료, 키보드 입력, 모니터 출력, 메모리 정리, 현재 시간 읽기, 시스템 환경 변수 읽기 등이 가능 합니다.
System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성 됩니다.
System.out.println("\"Enter\" 키를 입력 하셔면 종료 됩니다.");
System.out.println("Hello\\Java");
Ssytem.out.println("25%%");
키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 된 키보드를 읽을 수 있습니다.
throws *IOException
예외 처리 코드가 자동으로 추가 됩니다.*
int keyCode = System.in.read();
public static void main(String[] args) throws IOException {
int keyCode = System.in.read();
System.out.println("KeyCode : " + keyCode);
}
public static void main(String[] args) throws IOException {
while(true) {
int keyCode = System.in.read();
System.out.println("KeyCode : " + keyCode);
if (keyCode == 'q') break;
}
}
ASCII 코드값 기준
예로 들어 100을 입력하고자 할 때, String(문자열)로 입력받고 싶으면 next() 나 nextLine() 을, int(정수)로 입력받고 싶다면 nextInt() 를 사용하여 입력받으면 알아서 해당 타입으로 입력된다.
Scanner 클래스는 java.utiil 패키지내에 존재하므로 import해줘야 합니다.
import java.util.Scanner;
스캐너 클래스 사용을 위해서는 먼저 클래스를 호출하고, 객체를 생성 해야 합니다.
클래스이름 객체이름 = new 클래스이름();
Scanner in = new Scanner([System.in](http://system.in/)); // Scanner 객체 생성
[Scanner 입력 메소드 종류]
Scanner 생성자에는 사용자로 부터 입력을 받디 위한 입력 스트림을 지정 합니다.
import java.util.Scanner; // Scanner 클래스 호출
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); // Scanner 객체 생성
byte a = in.nextByte(); // byte 형 입력 및 리턴
short b = in.nextShort(); // short 형 입력 및 리턴
int c = in.nextInt(); // int 형 입력 및 리턴
long d = in.nextLong(); // long 형 입력 및 리턴
char ch = sc.next().charAt(0); // 문자 입력
float e = in.nextFloat(); // float 형 입력 및 리턴
double f = in.nextDouble(); // double 형 입력 및 리턴
boolean g = in.nextBoolean(); // boolean 형 입력 및 리턴
String h = in.next(); // String 형 입력 및 리턴 (공백을 기준으로 한 단어를 읽음)
String i = in.nextLine(); // String 형 입력 및 리턴 (개행을 기준으로 한 줄을 읽음)
}
}
package Sample1;
import java.lang.String;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력 하세요 : ");
String name = sc.next();
sc.nextLine();
System.out.print("주소를 입력 하세요 : ");
String addr = sc.nextLine();
System.out.print("성별을 입력 하세요 : ");
char gender = sc.next().charAt(0);
System.out.print("나이를 입력 하세요 : ");
int age = sc.nextInt();
System.out.println("==== 회원 정보 출력 =====");
System.out.println("이름 : " + name);
System.out.println("주소 : " + addr);
System.out.println("성별 : " + gender);
System.out.println("나이 : " + age);
}
}