2015. 1. 26. 15:33
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

File그리고 RandomAccessFile 클래스와 더불어 자바에서는 I/O 작업을 수행하기 위해 스트림(Stream)을 사용한다. 스트림은 임의의 길이를 가진 바이트들이 정렬되어 있는 시퀸스이다. 애플리케이션에서 바이트들을 파일 또는 화면과 같은 목적지로 전달할 때는 출력 스트림을 통해 전달되며 파일같은 소스에서 바이트들이 애플리케이션으로 전달될 때는 입력 스트림을 통해 전달이 된다.


application   ----write ---->   destination

output stream


source    ---read----> application

input stream



자바에서는 바이트 배열, 파일, 스크린 그리고 소켓과 같은 다양한 목적지를 사용할 수 있으며 바이트 배열, 파일, 키보드 그리고 소켓과 같은 다양한 소스를 사용할 수 있다.




스트림(Stream) 클래스 개요

java.io 패키지는 OutputStream 과 InputStream 추상 클래스의 후손인 몆가지  출력 스트림과 입력 스트림 클래스를 제공한다.



출력 스트림의 계층구조

OutputStream (abstruct)

ByteArrayOutputStream

FileOutputStream

FilterOutputStream

BufferedOutputStream

DataOutputStream

ObjectOutputStream

PipedOutputStream




입력 스트림 클래스 구조

InputStream (abstruct)

ByteArrayInputStream

FileInputStream

FilterInputStream

BufferedInputStream

DataInputStream

LineNumberInputStream

PushbackInputStream

ObjectInputStream

PipedInputStream

SequenceInputStream

StringBufferInputStream


LineNumberInputStream와 StringBufferInputStream은 문자 인코딩을 지원하지 않기 때문에 사용이 금지되었다. 이 사용 금지된 메소들 대신 LineNumberReader와 StringReader를 사용해야 한다.



***

PrintStream도 다른 언어의 문자 인코딩을 지원하지 않기 때문에 사용해서는 안되며 대신 PrintWriter를 사용해야 한다. 하지만 PrintStream은 System클래스의 out 과 err 클래스 필드 타입으로 너무나 광범위하게 사용되었기 때문에 사용 금지가 되지는 않았다.



java.io 패키지가 아닌 다른 자바 패키지에서도 몇가지 입/출력 스트림 클래스를 제공한다. 예를 들어 java.util.zip 패키지에서는 압축되지 않은 데이터를 압출하는 다섯 가지 출력 스트림 클래스를 제공하며 압축된 데이터를 압축 해제를 하는 다섯가지 입력 스트림을 제공한다.


CheckedOutputStream            

CheckedInputStream


DeflaterOutputStream           

DeflaterInputStream


GZIPOutputStream

GZIPInputStream


InflaterOutputStream

InflaterInputStream


ZipOutputStream

ZipInputStream




'Java > Working-level Java' 카테고리의 다른 글

InputStream  (0) 2015.01.26
OutputStream  (0) 2015.01.26
FileWriter : FIndAll  (0) 2015.01.22
Thread 3  (0) 2015.01.14
Thread 2  (0) 2015.01.14
Posted by af334