본문 바로가기
Develop/Java

JAVA 예외처리, 입출력 스트림

by J0DEV 2021. 8. 9.
반응형

Except&stream.zip
다운로드


Exception 클래스

1. 자바의 각종 에러

Error

  • 구문 에러
  • 런타임 에러
  • 논리 에러
  • 시스템 에러
  • 예외

 

2. Exception 클래스 개요

Exception클래스란?

  • 예외사항을 처리하기 위해 모델링된 클래스이다.
  • java.lang.Throwable 클래스의 하위 클래스이다.

Exception클래스 사용법

  • 프로그램 실행 중 예외가 발생되면 자바가상머신은 예외를 나타내는 Exception 클래스의 객체를 생성하여 프로그램으로 넘기게 된다.
  • 예외를 발생시킨 프로그램이 예외객체를 catch하여 처리하게 된다.
  • 예외처리를 하지 않은 상태에서 예외가 발생되면 프로그램이 중지된다.
메소드 내용
Exception 모든 예외클래스의 최상위 클래스
ArithmeticException (연산오류) : 프로그램 실행 중에 연산 과정에서 0으로 나누는 연산이 일어나면 발생된다.
NullPointerException 객체(클래스의 인스턴스)가 생성되지 않았는데도 객체를 참조하려할 경우 발생된다.
IOException 입출력 동작에 문제가 생겼을 경우 발생된다.
FileNotFoundException 파일에 접근했는데 해당 파일이 존재하지 않을 경우 발생된다.
SocketException 네트워크 프로그램에서 소켓에 이상이 생겼을 경우 발생된다.

 

3. try/catch 예외 처리

try/catch 예외 처리

  • 프로그램 실행 중에 예외가 발생되면 자바가상머신이 예외객체를 던지게 되는데 이를 프로그램에서 받아서 처리하는 구문이다.
  • try : 예외발생 가능성이 있는 구문
  • catch : 예외 처리 구문
  • finally : 예외와 관련 없이 반드시 처리해야 할 구문 (생략가능)

 

4. 예제

예외처리를 하지 않은 경우

예외처리를 한 경우


입출력 스트림

1. 스트림 개요

스트림이란?

  • 데이터의 연속적인 흐름으로써 입력 스트림과 출력스트림으로 나뉨

입력 스트림

  • 데이터 소스로부터 데이터를 읽는 경우에 대한 데이터의 흐름이다.

출력 스트림

  • 목적지로 데이터를 보내는 경우에 대한 데이터의 흐름이다.

 

2. 입력 스트림 클래스

InputStream 계열

  • InputStream
  • FilterInputStream
  • DataInputStream
  • FileInputStream
  • BufferedInputStream

Reader 계열

  • Reader
  • BufferedReader
  • InputStreamReader
  • FileReader

InputStream 클래스와 Reader 클래스의 주요 메소드

메소드 내용
int read(0 스트림으로부터 1바이트를 읽어 바이트 값으로 반환한다.
int read(byte[] b) 준비된 배열에 스트림으로부터 데이터를 바이트 단위로 읽어 들여 바이트 값으로 저장한다.
int read(char[] c) 준비된 배열에 스트림으로부터 데이터를 문자 단위로 읽어 들여 문자 값으로 저장한다.
int available() 해당 스트림에서 지연되지 않고 읽어 들일 수 있는 바이트의 수를 반환한다.
void close() 해당 스트림과 관련된 자원들(일반적으로 프로그램 실행에 사용되었던 메모리)이 해제된다.

 

3. 예제

4. 출력 스트림

OutputStream 계열

  • OutputStream
  • FilterOutputStream
  • DateOutputStream
  • FileOutputStream
  • BufferedOutputStream

Writer 계열

  • Writer
  • BufferedWriter
  • OutputStreamWriter
  • FileWriter

 

5. 출력 스트림 클래스

OutputStream 클래스와 Writer 클래스의 주요 메소드

메소드 내용
void write(byte[] b) 버퍼에 들어 있는 바이트 배열을 출력한다.
void write(char[] c) 버퍼에 들어있는 문자배열을 출력한다.
void writer(String str, int off, int len) 버퍼에 들어있는 문자열을 off 위치에서부터 len 개수만큼 출력한다.

 

File 클래스

1. File 클래스

File 클래스 개요

  • 자바 언어는 플랫폼 독립적이므로 파일 시스템이 서로 다른 운영체제에서 동일한 방식으로 파일처리가 가능하도록 클래스가 제공된다.
  • 일관된 방식으로 파일 처리가 가능하도록 한다.
  • 파일의 정보만을 취급하여 파일 내용(파일명, 파일경로, 마지막으로 수정된 시간, 파일 길이, 파일 또는 디렉토리 여부)에 대한 처리는 입출력 스트림이나 뒤에 다룰 RandomAccessFile 클래스에서 담당한다.

File 클래스 생성자

  • File(String name) : 파일의 경로를 인자로 받아 File 객체 생성
  • File(File dir, String name) : 디렉토리 File 객체와 문자열로 구성된 파일명을 인자로 받아 File 객체 생성
  • File(String dir, String name) : 문자열로 구성된 디렉토리 명과 파일명을 인자로 받아 File 객체 생성

File 클래스의 주요 메소드

주요 메소드 내용
String getName() 경로를 제외한 파일명을 반환
String getAbsolutePath() 파일의 절대경로를 반환
String getPath() 파일의 경로를 반환
long length() 파일의 길이를 바이트 단위로 반환
boolean exists() 파일이 존재하는지의 여부를 반환
boolean isDirectory() 파일 클래스가 디렉토리일 경우 true 반환
boolean mkdir() 디렉토리를 생성하고 성공 여부 반환
boolean delete() 파일을 삭제하고 성공 여부 반환

 

 

2. RandomAccessFile 클래스

RandomAccessFile 클래스 개요

  • 입출력 스트림은 파일 내용을 순차적으로만 처리 가능하다.
  • 파일의 임의의 위치에 직접 접근이 가능한 클래스이다.

RandomAccessFile 클래스 생성자

  • RandomAccessFile(String n, String m) : 파일명과 읽기쓰기 모드를 인자로 하여 객체 생성
  • RandomAccessFile(File f, String m) : 파일 객체와 읽기쓰기 모드를 인자로 하여 객체 생성

RandomAccessFile 클래스의 주요 메소드

주요 메소드 내용
long getFilePointer() 파일 포인터(파일 내에서 현재 제어되고 있는 부분)의 위치를 반환
void seek(long pos) 인자가 지정한 위치로 파일 포인터를 이동
int read() 현재 파일 포인터에서 내용을 읽어냄
final String readLine() 현재의 파일 포인터에서 한 라인을 읽어냄
void write(byte b[]) 현재의 파일 포인터에서 바이트 배열을 쓰기함
long length() 파일의 길이를 바이트 단위로 반환
void close() 파일 객체 닫기

 

반응형