TIL 2일차 - 입출력 다루기

haema World!·2025년 11월 26일

JAVA

목록 보기
3/9
post-thumbnail

2일차

2장 입출력 다루기

2.1 출력하기

출력 수행 명령어
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 입력받기

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 이다.
알파벳 a97출력

아스키 코드 : 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( ) 입력 스트림을 닫지 않으면 계속해서 자원을 사용하는 상태로 메모리 낭비 명시적으로 닫아주면 문제 발생 예방

profile
초짜개발자 - YUNICODE

0개의 댓글