java programming language (3) - input/output stream –

21
Company Logo @ Java Programming Language (3) - Input/Output Stream – Dong In Shin DCS lab Seoul National University

Upload: sereno

Post on 19-Mar-2016

102 views

Category:

Documents


2 download

DESCRIPTION

Java Programming Language (3) - Input/Output Stream –. Dong In Shin DCS lab Seoul National University. Stream. Stream? Input source 또는 output destination 을 갖는 순서화된 일련의 자료 (sequence of bytes) 를 나타내는 abstract input/output model Why JAVA uses Stream? I/O device 에 독립적인 입출력 방식을 제공 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Java Programming Language (3) - Input/Output Stream –

CompanyLogo

@

Java Programming Language (3)- Input/Output Stream –

Dong In ShinDCS lab

Seoul National University

Page 2: Java Programming Language (3) - Input/Output Stream –

[email protected]

Stream Stream?

Input source 또는 output destination 을 갖는 순서화된 일련의 자료 (sequence of bytes) 를 나타내는 abstract input/output model

Why JAVA uses Stream? I/O device 에 독립적인 입출력 방식을 제공

대부분의 method 는 throws IOException

java.io package 내의 모든 exception class 는 IOException 의 직간접적인 하위 클래스이다 .

Page 3: Java Programming Language (3) - Input/Output Stream –

[email protected]

Input/Output Stream

Data

DataProgram

InputStream

OutputStream

Page 4: Java Programming Language (3) - Input/Output Stream –

[email protected]

Stream Input/Output class 의 종류

입출력 자료 종류 Byte stream : InputStream , OutputStream

Binary data 또는 byte 단위의 문자 자료의 입출력 방법 제공 Character stream : Reader , Writer

Unicode(2 byte) 문자 자료의 입출력 방법 제공

입출력 장치 종류 입출력 장치 종류 (file, network, …) 에 따라 다른 stream clas

s 들에 의해 지원

Page 5: Java Programming Language (3) - Input/Output Stream –

[email protected]

Stream Input/Output class 의 종류 입출력 기능 (filtering)

기존의 stream 에 부가적인 입출력 기능을 추가하여 제공하는 stream

문자 세트 변환 InputStreamReader, OutputStreamWriter

자료값을 string 표현으로 출력 PrintWriter, PrintStream

버퍼링 (buffering)… 자료의 내부 표현 값을 그대로 입출력

DataInputStream, DataOutputStream 객체 입출력

ObjectInputStream, ObjectOutputStream

Page 6: Java Programming Language (3) - Input/Output Stream –

[email protected]

Byte Stream Classes

Page 7: Java Programming Language (3) - Input/Output Stream –

[email protected]

Character Stream Classes

Page 8: Java Programming Language (3) - Input/Output Stream –

[email protected]

Data Sink Stream Classes String, file, pipe 와 같이 특정한 data 를 읽거나 쓸 때 사용한다

Sink type Character stream

Byte stream

Memory CharArrayReaderCharArrayWriter

ByteArrayInputStreamByteArrayOutputStream

StringReader,StringWriter

StringBufferedInputStream(Deprecated.)

Pipe PipedReaderPipedWriter

PipedInputStreamPipedOutputStream

File FileReaderFileWriter

FileInputStreamFileOutputStream

Page 9: Java Programming Language (3) - Input/Output Stream –

[email protected]

InputStream / OutputStream Abstract byte input/output stream class

int read( )int read(byte cbuf[ ])int read(byte cbuf[], int offset, int length)

int write( )int write(byte cbuf[ ])int write(byte cbuf[], int offset, int

length)void flush()

void close() : stream 을 닫을 때 사용하는 method

Page 10: Java Programming Language (3) - Input/Output Stream –

[email protected]

FileInputStream / FileOutputStream Input source 와 Output destination 이 file 인 byte stream class

FileInputStream class construct new FileInputStream(String name)throws FileNotFoundException new FileInputStream(File file)throws FileNotFoundException

FileOutputStream class New FileOutputStream(String name, boolean append =false) throws FileNotF

oundException New FileOutputStream(File file) throws FileNotFoundException

Page 11: Java Programming Language (3) - Input/Output Stream –

[email protected]

FileInputStream/ FileOutputStream

Page 12: Java Programming Language (3) - Input/Output Stream –

[email protected]

FileInputStream/ FileOutputStream

Page 13: Java Programming Language (3) - Input/Output Stream –

[email protected]

Standard I/O 운영체제가 제공하는 기능에 의해 프로그램의 수정없이 다양한

입출력 장치 (keyboard, monitor ,file) 로 입출력 제공

표준 입출력 객체 InputStream System.in

Standard input stream (default 로 keyboard) OutputStream System.out

Standard output stream (default 로 monitor ) PrintStream System.err

Standard error stream (default 로 monitor)

Page 14: Java Programming Language (3) - Input/Output Stream –

[email protected]

Standard I/O

result

Page 15: Java Programming Language (3) - Input/Output Stream –

[email protected]

Reader/Writer Input source 로 부터 Unicode 문자 자료 (char, char[], string) 을

읽어들이고 제어할 수 있는 method 를 제공하는 abstract character input/output stream class

FileReader/FileWriter : FileInputStream , FileOutputStream 과 기능이 거의 동일

int read( )int read(char cbuf[ ])int read(char cbuf[], int offset, int length)

int write( )int write(char cbuf[ ])int write(char cbuf[], int offset, int

length)

Page 16: Java Programming Language (3) - Input/Output Stream –

[email protected]

InputStreamReader/OutputStreamWriter

Byte stream 을 Character stream 과 연결시켜 Unicode 문자를 입출력 할 수 있다 .

Byte stream 의 문자 인코딩을 지정 .

Page 17: Java Programming Language (3) - Input/Output Stream –

[email protected]

InputStreamReader/OutputStreamWriter

Page 18: Java Programming Language (3) - Input/Output Stream –

[email protected]

Memory Stream

Page 19: Java Programming Language (3) - Input/Output Stream –

[email protected]

Memory Stream

Page 20: Java Programming Language (3) - Input/Output Stream –

[email protected]

I/O 관련 기본 exception class

java.io 및 java.net package 의 모든 exception class 는 java.io.IOException 의 extended class

따라서 IOException handling 만으로 모두 처리가능

Page 21: Java Programming Language (3) - Input/Output Stream –

[email protected]

Next 입출력 기능에 따른 stream class(filtering)

Buffering, string presentation… Object stream

객체 직렬화 ( Serializable interface )