[JAVA] 예외처리, 입출력

선뀰·2024년 1월 12일
0

JAVA

목록 보기
22/25

예외처리

비정상 종료를 막는다. 예기치 못한 예외 발생할 것에 대비하여 코드를 작성하는 것이다.
버그에 대한 Log를 남기고 분석 -> 버그를 수정한다.

print(), printf(), println() 메소드에 자체적으로 예외처리를 해주었기 때문에 상관 없지만, 위의 3개를 제외하고 출력을 담당하는 다른 메소드를 사용하면 오류가 발생한다.

throws IOException을 함께 작성을 통해 예외처리를 해야 한다.
입출력 예외가 발생하면 클래스에서 벗어날 수 있도록 해준다.

1) 에러 : 프로그래밍 코드에 의해 수습될 수 없는 오류
2) 예외 : 프로그래밍 코드에 의해 처리 가능한 오류

Exception 클래스

Object클래스의 자손이다.

  • Throwable
  • Exception
  • IOException
    throws IOException

1. Stream

데이터가 연속적으로 존재하는 것을 표현한 객체이다. byte의 연속된 집합이라고 할 수 있다.

2. InputStream = 아스키 코드 값으로 저장

InputStream 객체를 상속받는 System.in;의 read()메서드를 통해 값을 입력받을 수 있다.

public class Test1 {
	public static void main(String[] args) throws IOException {
    	InputStream in = System.in;
        
        int a;
        a = in.read();
        
        System.out.pringln(a); // 아스키코드 값인 97이 출력된다.
    }
}

InputStreamReader

byte대신 char형태로 읽을 수 있다. 아스키코드가 아닌 문자열로 출력이 가능하다.
String객체로 변환할 수 있다. inputStream을 인자값으로 받아와서 만들어진다.

InputStream inputStream = System.in;
InputStreamReader reader = new InputStreamReader(inputStream);

char[] chars = new cahr[3];
reader.read(chars);

문자 단위로 읽어 들인다. 바이트 단위로 읽어 들이는 InputStream을 통해 입력을 받은 뒤,
문자 단위로 데이터를 변환시키는 중개자 역할을 하는 클래스이다. 입력한 문자 값을 그대로 출력해주는 역할을 한다.

BufferedReader

\n과 같이 새로운 줄이 생기기 전까지 또는 내용이 너무 길어서 Stream이 꽉 차서 null을 반환하기 전까지 모든 값을 저장한다.
InputStream -> InputStreamReader -> BufferedReader 차례대로 인자값으로 받아와서 사용해야 한다.

InputStream inputStream = System.in;
InputStreamReader reader = new InputStreamReader(inputSream);
BufferedReader br = new BufferedReader(reader);

String s = br.readLine();
sout -> s

Scanner

  • next() : 단어 1개
  • nextLine() : 라인 1줄
  • nextInt() : 정수값만 읽는다. 문자를 입력하면 InputMismatchException을 반환한다.
profile
공부 기록

0개의 댓글