: 학습을 위한 자바의 I/O(입출력) 클래스 간단 요약
: java.io 패키지의 클래스로, 입력과 출력(Input/Output)을 의미함
애플리케이션에서 리소스를 읽어오거나, 애플리케이션의 데이터를 목적지로 출력하는 작업을 수행하는 클래스
클래스 | 입출력 단위 | 입력/출력 |
---|---|---|
InputStream | 1byte | 입력 |
OutputStream | 1byte | 출력 |
Reader | 1문자(Character) | 입력 |
Writer | 1문자(Character) | 출력 |
: 1byte씩 읽고 출력하는 스트림
1) int read()
> 한 바이트씩 읽어서 반환
> 스트림의 끝에 도달하면 -1을 반환
2) int read(byte[] buf)
> 지정된 byte[]배열에 한 바이트씩 저장 -> 반환되는 값은 배열에 저장된 데이터의 갯수
> 스트림의 끝에 도달하면 -1을 반환
3) void close()
> 애플리케이션이 사용했던 시스템의 입출력 자원을 반환
1) FileInputStream
> 지정된 파일의 데이터를 1바이트씩 읽어옴
2) BufferedInputStream
> 다른 InputStream과 연결해서 사용하는 보조스트림
> 읽기 성능 향상
3) DataInputStream
> DataOutputStream으로 출력한 내용을 읽어오는 스트림
> readInt(), readLong(), readDouble(), readUTF()와 같은 메소드를 사용해서 타입 그대로 읽어오기 가능
4) ObjectInputStream
> ObjectOutputStream으로 직렬화된 객체를 역직렬화해서 객체로 복원
> readObject() 메소드를 사용해서 직렬화된 객체를 스트림으로 읽어서 역직렬화 시킴
1) void write(int data)
> 한 바이트씩 출력
2) void write(byte[] buf)
> 지정된 byte[]배열에 저장된 데이터 출력
3) void write(byte[] buf, int offset, int length)
> 지정된 byte[]배열에 저장된 데이터를 offset위치부터 length만큼 출력
4) void flush()
> 스트림의 내부저장소가 채워지지 않아도 강제로 목적지로 출력시킴
5) void close()
> 애플리케이션이 사용했던 시스템의 입출력 자원을 반환
1) FileOutputStream
> 파일로 1byte씩 출력하는 스트림
2) BufferedOutputStream
> 연결된 InputStream의 쓰기 성능을 향상시키는 스트림
3) DataOutputStream
> 연결된 InputStream으로 값을 기본자료형이나 String형태로 출력하는 스트림
4) ObjectOutputStream
> 객체를 직렬화해서 연결된 스트림으로 출력하는 스트림
5) PrintStream
> 출력 전용 스트림
: 1문자씩 읽고 출력하는 텍스트 전용 스트림, 파일을 직접 쓰고 싶을 때만 사용
1) int read()
> 한글자씩 읽어서 반환
2) int read(char[] buf)
> 지정된 char[]배열에 한글자씩 저장하고, 저장된 문자갯수를 반환
3) void close()
> 애플리케이션이 사용했던 시스템의 입출력 자원을 반환
1) FileReader
> 텍스트 파일에서 한글자씩 읽어오는 스트림
2) BufferedReader
> 연결된 캐릭터스트림으로부터 한줄씩 읽어오는 스트림
3) InputStreamReader
> InputStream과 Reader를 연결하는 스트림
1) void write(int value)
> 한글자씩 출력
2) void wrtie(char[] buf)
> 지정된 char[]배열에 저장된 문자를 전부 출력
3) void wrtie(char[] buf, int offset, int length)
> 지정된 char[]배열에 저장된 데이터를 offset위치부터 length만큼 출력
4) void write(String text)
> 지정된 문자열 출력
5) void flush()
> 스트림의 내부저장소가 채워지지 않아도 강제로 목적지로 출력시킴
6) void close()
> 애플리케이션이 사용했던 시스템의 입출력 자원을 반환
1) FileWriter
> 파일에 텍스트를 출력
2) BufferedWriter
> 연결된 Reader의 출력성능을 향상시킴
3) OutputStreamWriter
> OutputStream과 Writer를 연결하는 스트림
4) PrintWriter
> 출력전용 스트림
> 개행문자를 자동으로 추가
일반적인 파일의 복사 및 저장 작업
: FileInputStream, FileOutputStream 사용
텍스트 파일의 처리
: BufferedReader, FileReader, PrintWriter 사용