1. File 클래스 File 클래스는 파일 및 디렉토리에 대한 정보를 제공하는 클래스다. (파일에 대한 입출력은 스트림에서 제공) 생성자 매개변수 설명 File(String pathname) 파일 경로(이름) File 객체 생성 (주의) new 로 생성자를 호출하면 File 이 생성되는 것이 아니라 File 객체가 생성되는 것이다. boolean createNewFile() 주어진 이름의 파일이 없으면 파일 새로 생성 boolean delete() 파일이나 디렉토리 삭제(디렉토리는 비어있어야 삭제O) boolean isFile() 해당 경로가 file 인지 여부 반환 boolean isDirectory() 해당 경로가 디렉토리인지 여부 반환 String getName() 파일/디렉토리 명 반환 Stri..
1. 직렬화와 역직렬화 1. 직렬화와 역직렬화 1) 직렬화(Serialization) 직렬화는 자바 시스템 내에서 사용하는 객체나 데이터를 자바 시스템외에서도 사용할 수 있도록 Byte 형태로 변환하는 기술이다. 인스턴스 내용 -> 연속 스트림으로 만들어 파일에 쓰거나 네트워크로 전송이 가능하게 한다. 2) 역직렬화(Deserialization) 역직렬화는 Byte로 변환된 데이터를 다시 자바의 객체로 변환하는 기술이다. 생성자 매개변수 설명 역직렬화 ObjectInputStream(InputStream in) InputStream ObjectInputStream 생성 직렬화 ObjectOutputStream(OutputStream out) OutputStream ObjectOutputStream 생성 ..
1. 보조 스트림이란? 보조 스트림은 입출력 대상이 되는 파일이나 네트워크에 직접 쓰거나 읽는 기능은 없고 보조 기능을 추가하는 스트림이다. 보조 스트림은 다른 스트림을 감싸고 있다는 의미로 Wrapper 스트림이라고도 한다. 보조 스트림은 자료 입출력을 직접 할 수 없기 때문에 다른 기반 스트림을 포함한다. 2. FilterInputStream 과 FilterOutputStream FilterInputStream 과 FilterOutputStream 은 보조 스트림의 상위 클래스다. 생성자 매개변수 protected FilterInputStream(InputStream in) InputStream protected FilterOutputStream(OutputStream out) OutputStream..
1. Reader Reader 는 문자 단위로 읽는 스트림 중 최상위 스트림이다. FileReader 파일에서 문자 단위로 읽는 스트림 InputStreamReader 바이트 단위로 읽은 자료-> 문자 변환하는 보조 스트림 BufferedReader 문자를 읽을 때 배열을 제공하여 한번에 읽을 수 있도록 하는 보조 스트림 int read() 파일에서 한 문자 읽기 int read(char[] buff) 파일에서 buf 배열의 문자 읽기 int read(char[] buf, int off, int len) 파일에서 buf 배열의 off 위치부터 len 만큼 문자 읽기 void close() 스트림과 연결된 파일 리소스 닫기 2. FileReader FileReader 는 Reader 중 가장 많이 사용하는..
1. InputStream InputStream 은 바이트 단위로 읽는 스트림 중 최상위 스트림이다. InputStream 은 추상 메서드를 포함한 추상 클래스로 하위 클래스에서 추상 메서드를 구현한다. FileInputStream 파일에서 바이트 단위로 자료 읽기 ByteArrayInputStream Byte 배열에서 바이트 단위로 자료 읽기 FilterInputStream 입력 스트림의 보조 스트림의 상위 클래스 read() 반환형은 int로 더 이상 읽어들일 자료가 없는 경우에 -1 반환 int read() 입력 스트림으로부터 한 바이트 자료 읽기 읽은 자료 바이트 수 반환 int read(byte b[]) 입력 스트림으로부터 b[] 크기의 자료를 b[] 에 읽기 읽은 자료 바이트 수 반환 int ..
표준 입출력은 콘솔 화면에 입출력된다고 해서 콘솔 입출력이라고도 한다. 자바에서는 표준 입출력 클래스를 미리 정의해두고 프로그램 시작시 자동 생성되므로 따로 만들 필요는 없다. 자료형 변수 이름 설명 static PrintStream out 표준 출력 스트림 static InputStream in 표준 입력 스트림 static OutputStream err 표준 오류 출력 스트림 out, in, err 모두 static 변수로 System 클래스를 생성하지 않고 System.in / System.out / System.err 이렇게 쓸 수 있다. 1. System.in으로 화면에서 문자 입력받기 입출력에 관한 코드를 구현하면 예외 처리를 해야한다. System.in.read();// 한 바이트씩 읽기 실..
1. 스트림이란? 자바에서 모든 입출력은 스트림(Stream)을 통해 이루어진다. 입출력 장치는 매우 다양하기 때문에 장치에 따라 입출력 부분을 다르게 구현하면 호환성이 떨어진다. 따라서, 자바는 입출력 장치와 무관하고 일관성있게 프로그램을 구현할 수 있도록 일종의 가상통로인 스트림을 제공한다. 자료를 읽어 들이는 Source와 자료를 쓰려는 target에 따라 다른 스트림 클래스를 제공한다. 스트림을 3가지 기준에 따라 분류할 수 있다. 1. 입력 스트림과 출력 스트림 스트림은 단방향으로 자료가 이동하므로 입출력을 동시에 할 수 없다. 1) 입력 스트림: 어떤 대상으로부터 데이터를 읽을 때 사용하는 스트림 - InputStream / Reader 로 끝나는 클래스 2) 출력 스트림: 어떤 대상으로 데이..
1. 예외 클래스 1. 오류란 무엇인가요? 프로그램 오류의 발생 시점에 따라 2가지로 구분할 수 있다. 1) 컴파일 오류(compile error) 컴파일 오류는 코드 작성 중 실수로 발생하는 문법적인 오류다. 2) 실행 오류(runtime error) 실행 오류는 컴파일 오류는 없으나 프로그램 실행 중 발생하는 오류다. 버그는 실행 오류 중 프로그램을 잘못 구현하여 의도와 다르게 실행되어 생기는 오류다. 런타임 오류로 인한 프로그램이 비정상 종료되는 것을 방지하기 위해 예외 처리를 한다. 예외가 발생했을 때 로그를 남겨두면 예외 상황을 파악하고 버그를 수정하는데 도움을 받을 수 있다. 2. 오류와 예외 1) 시스템 오류(error) Error 는 JVM에서 발생하는 오류로 프로그램 코드로 제어할 수 없..