Post

JAVA 입출력(IO)

입출력이란 `입력` + `출력`의 줄임말. `Input` + `Output` 이라는 의미로 **IO** 라고 부르기도 한다.

JAVA 입출력(IO)

#01. 출력

1) 괄호안의 내용을 출력하고 줄바꿈 수행하기

println()lnline의 줄임말

1
2
3
4
System.out.println("j");
System.out.println("a");
System.out.println("v");
System.out.println("a");
  • 출력결과

    1
    2
    3
    4
    
      j
      a
      v
      a
    

2) 아무런 내용도 출력하지 않고 줄바꿈만 수행

println()에게 출력할 내용을 지정하지 않는다.

1
System.out.println();

3) 괄호안의 내용을 출력하고 줄바꿈 안하기

println()이 아닌 print() 명령어 사용

1
2
3
4
System.out.print("j");
System.out.print("a");
System.out.print("v");
System.out.print("a");
  • 출력결과

    1
    
      java
    

#02. 입력

키보드를 통해 사용자에게 어떤 내용을 입력받아서 변수에 저장 가능함.

이 기능은 명령프롬프트를 통해 실행한 경우에만 사용 가능하다.

1) 구현절차

클래스 정의 상단에 다음의 구문을 추가함

1
import java.util.Scanner;

메인 메서드 첫 라인에서 다음의 구문을 추가함

1
Scanner reader = new Scanner(System.in);

숫자값을 입력받고자 하는 경우

1
int input = reader.nextInt();

문자열을 입력받고자 하는 경우

1
String input = reader.nextLine();

사용 완료 후 입력기능 닫기

1
reader.close();

#03. 이스케이프 문자

출력시에 문자열에 포함시킬 수 없는 줄바꿈, 탭키 등을 처리하기 위한 특수문자.

글자 앞에 역슬래시(\)를 적용하여 두 글자가 모여 한 글자로 인식된다.

이스케이프 문자의미
\n줄바꿈
\t탭키
\"쌍따옴표
\'홑따옴표
\\역슬래시 자체

#04. 형식문자

문자열을 출력할 때 변수값이 적용될 수 있는 치환자.

1) 종류

형식문자데이터 타입의미
%s문자열문자열을 지정
%d정수10진 정수로 표시
%f실수실수형태의 10진수로 표시
무조건 소수점 6자리까지 표시.
그 이상 되는 자리수는 반올림
%g실수실수형태의 소수점 10진수로 표시
소수점 4자리까지 표시.
그 이상 되는 자리는 반올림 처리
%%퍼센트 퍼센트를 표시 

2) 형식문자를 포함하는 문자열 직접 출력하기

구문형식

1
System.out.printf(문자열, 변수1, 변수2 ... 변수3)
  • 첫 번째 조건값으로 주어지는 문자열에는 형식문자가 포함되어야 한다.
  • 두 번째 이후의 조건값들은 첫 번째 조건값인 문자열에 포함된 형식 문자들을 치환할 변수들이 순서대로 나열된다.
  • 출력 후 자동 줄바꿈이 되지 않으므로 줄바꿈을 사용하기 위해서는 \n 을 활용하여 직접 처리해야 한다.

3) 형식문자를 포함하는 문자열을 통한 새로운 문자열 만들기

구문형식

1
String 변수이름 = String.format(문자열, 변수1, 변수2 ... 변수3)
  • 첫 번째 조건값으로 주어지는 문자열에는 형식문자가 포함되어야 한다.
  • 두 번째 이후의 조건값들은 첫 번째 조건값인 문자열에 포함된 형식 문자들을 치환할 변수들이 순서대로 나열된다.

4) 자릿수 지정

%다음에 자릿수를 의미하는 숫자를 명시할 수 있다.

출력 되는 내용은 오른쪽에 정렬하고 남는 자리는 공백으로 채워진다.

만약 자릿수가 부족할 경우 원본 값이 그대로 출력 된다.

문자열의 자릿수 지정

  • %숫자s 형식으로 명시한다.
  • 치환할 문자열의 길이가 주어진 자릿수보다 짧을 경우 왼쪽부터 공백이 추가된다.
  • 치환할 문자열의 길이가 주어진 자릿수보다 긴 경우 문자열이 그대로 출력된다.

정수의 자리수 지정

  • %숫자d 형식으로 명시한다.
  • 치환할 값의 길이가 주어진 자릿수보다 짧을 경우 왼쪽부터 공백이 추가된다.
  • 치환할 값의 길이가 주어진 자릿수보다 긴 경우 문자열이 그대로 출력된다.

실수의 자릿수 지정

  • 소수점을 포함하여 10자리를 만들기 위해 뒤에 0을 추가한다.
  • 소수점도 자릿수에 포함됨에 주의한다.

빈 자리를 0으로 채우기

정수의 경우

  • 빈 자리를 0으로 채우도록 지정할 수 있다.
  • % 다음에 010 과 같은 형식으로 0을 먼저 명시하고 자리수를 지정한다.

실수의 경우

  • 빈 자리를 0으로 채우도록 지정할 경우 소수점 뒤에 적용된다.
  • 점(.)을 사용하면 소수점의 기본 자릿수를 변경할 수 있다.

#05. 실습예제

📒 Ex01_출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Ex01_출력 {
    public static void main(String[] args) {
        /** 1) 괄호안의 내용을 출력하고 줄바꿈 수행하기 */
        System.out.println("j");
        System.out.println("a");
        System.out.println("v");
        System.out.println("a");

        /** 2) 아무런 내용도 출력하지 않고 줄바꿈만 수행 */
        System.out.println();

        /** 3) 괄호안의 내용을 출력하고 줄바꿈 안하기 */
        System.out.print("j");
        System.out.print("a");
        System.out.print("v");
        System.out.print("a");
    }
}

📒 Ex02_입력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/** 1) 클래스 정의 상단에 다음의 구문을 추가함 */
import java.util.Scanner;

public class Ex02_입력 {
    public static void main(String[] args) {
        /** 2) 메인 메서드 첫 라인에서 다음의 구문을 추가함 */
        // 프로그램에 대한 입력기능(System.in)에 대한 스캔기능(Scanner)를 활성화 하여
        // 그 결과를 reader에 저장함
        Scanner reader = new Scanner(System.in);

        /** 3) 문자열을 입력받고자 하는 경우 */
        System.out.print("이름을 입력하세요: ");
        String name = reader.nextLine();

        /** 4) 숫자값을 입력받고자 하는 경우 */
        System.out.print("나이를 입력하세요: ");
        int age = reader.nextInt();

        /** 5) 실수값을 입력받고자 하는 경우 */
        System.out.print("키를 입력하세요: ");
        // float height = reader.nextFloat();
        double height = reader.nextDouble();

        /** 6) 입력값을 더 이상 사용하지 않는다면 입력기능 닫기 */
        reader.close();

        /** 7) 결과 활용 */
        System.out.println("---------------");
        System.out.println(name + "님은 " + age + "세이고 키는 " + height + "cm 입니다.");
        System.out.println("---------------");
    }
}

📒 Ex03_이스케이프문자

1
2
3
4
5
6
public class Ex03_이스케이프문자 {
    public static void main(String[] args) {
        System.out.println("\"Java\"\t\'Programming\'");
        System.out.println("Hello\nWorld");
    }
}

📒 Ex04_형식문자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Ex04_형식문자 {
    public static void main(String[] args) {
        String name = "토마토";
        int age = 20;
        System.out.printf("%s님은 %d세 입니다.\n", name, age);

        double temp = 15.789012345;
        double dust = 10.567890123;
        System.out.printf("오늘의 기온은 %f이고 미세먼지 농도는 %g 입니다.\n", temp, dust);

        String place = "신촌";
        int time = 20;
        String result = String.format("%s까지는 약 %d분이 걸립니다.\n", place, time);
        System.out.println(result);
    }
}

📒 Ex05_자릿수지정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Ex05_자릿수지정 {
    public static void main(String[] args) {
        /** 1) 문자열의 자릿수 지정 */
        // 문자열이 10자리보다 짧은 경우
        System.out.printf("%10s\n", "java");
        // 문자열이 10자리보다 긴 경우
        System.out.printf("%10s\n", "java programming");

        /** 2) 정수의 자리수 지정 */
        // 문자열이 5자리보다 짧은 경우
        System.out.printf("%5d\n", 123);
        // 문자열이 5자리보다 긴 경우
        System.out.printf("%5d\n", 1234567890);
        /** 3) 정수의 빈 자리를 0으로 채우기 */
        System.out.printf("%010d\n", 1234567);

        /** 4) 실수의 자릿수 지정 */
        System.out.printf("%10f\n", 123.4567);

        /** 5) 실수의 빈 자리를 0으로 채우기 */
        // 전체 10자리, 0은 값의 뒤에 적용된다.(기본형)
        System.out.printf("%10f\n", 123.4567);
        // 소수점 둘째자리까지만 출력 (소수점 반올림)
        System.out.printf("%.2f\n", 123.4567);
        // 소수점 자리수가 지정된 경우에 한해서 빈자리를 공백으로 두고 오른쪽 정렬
        System.out.printf("%10.2f\n", 123.4567);
        // 소수점 자리수가 지정된 경우에 한해서 빈자리를 0으로 채우고 오른쪽 정렬
        System.out.printf("%010.2f\n", 123.4567);
    }
}
This post is licensed under CC BY 4.0 by the author.