• 검색 결과가 없습니다.

자바네트워크 제2주

N/A
N/A
Protected

Academic year: 2022

Share "자바네트워크 제2주"

Copied!
46
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

자바네트워크 제2주

자바 IO, 바이트스트림: 바이트단위 IO 클래스

(2)

제2장 자바 IO

필요성

자바 IO에 대한 선입견

자바 IO도 객체이다

재사용되기 위해 설계된 자바 IO

특수한 IO 객체

자바 IO 란

생성자가 중요한 자바 IO관렦 클래스

자바 IO 프로그래밍을 잘하려면

논의

(3)

필요성

모든 프로그램은 입력과 출력이 있음

자바 IO 클래스를 잘 사용하려면 자바의 상속관계를 이해 해야 한다.

(4)

자바 IO에 대한 선입견

자바 IO는 어렵다

자바 기본 문법을 잘 이해 하면 어렵지 않다.

java.io 패키지 이해

자바 프로그램 자바 IO

Internet

(5)

자바 IO도 객체이다.

자바 IO 객체가 어떤 것이 있는가

어떻게 사용되는가

용도가 무엇인가

(6)

재사용되기 위해 설계된 자바 IO

Parent read()

FirstChild read()

SecondChild read()

ThirdChild Parent p

read()

(7)

Class 상속

(8)

테스트 클래스

FirstChild

Parent fc

Heap

Stack

(9)

Other example

NamedParent name getName()

NamedChild name getName()

(10)

Other example

getName() NamedChild

name

NamedParent name

NamedParent nc

(NamedChild)nc

(11)

특수한 IO 객체

public static InputStream System.in

public static PrintStream System.out

public static PrintStream System.err

자바프로그램

System.in

System.out

System.err

(12)

java.io 란

(13)

IO 클래스의 특징

Stream으로 끝나는 클래스

바이트단위 IO 클래스이다

InputStream으로 끝나는 클래스

바이트단위로 입력하는 클래스이다

OutputStream으로 끝나는 클래스

바이트단위로 출력하는 클래스이다

Reader로 끝나는 클래스

문자단위로 읽어들이는 클래스이다

Writer로 끝나는 클래스

문자단위로 출력하는 클래스이다

File로 시작하는 클래스(File 클래스 제외)

파일로부터 입력 출력을 하는 클래스이다

(14)

IO 클래스의 특징

ByteArray로 시작하는 클래스

바이트배열로 부터 입력/출력하는 클래스이다

CharArray로 시작는 클래스

문자배열로부터 입력/출력하는 클래스이다

Filter로 시작하는 클래스

상속받아서 사용하며, 사용자가 필요한 부분만 필터링한다

Data로 시작하는 클래스

기본자료형(int, float, double 등)을 입출력하는 데 사용한다

Buffered로 시작하는 클래스

입출력에 Buffer를 사용하는 클래스이다

RandomAccessFile 클래스

파일의 임의의 위치에서 일고 쓸 수 있는 클래스이다

(15)

생성자가 중요한 자바 IO 관렦 클래스

클래스명을 구성하는 단어의 의미를 잘 이해해야 한다.

클래스 생성자의 의미를 알고 사용해야 한다.

생성자의 매개변수가 읽거나 쓰는 대상을 지정한다

(16)

자바 IO 프로그래밍을 잘 하려 면

자바 IO API를 한번 읽어 보자.

InputStreamReader

BufferredReader System.in

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

(17)

예제

키보드에서 한 줄 읽어서 그대로 출력

(18)

논의

자바 IO를 이해하기 위한 상속

각 자바 IO 클래스명의 의미

(19)

제3장 바이트스트림: 바이트단위 IO 클래스

필요성

File 클래스

바이트단위 IO 클래스

논의

(20)

필요성

바이트단위 입출력은 자바 입출력의 기본이다.

모든 자바 입출력 클래스는 궁극적으로 바이트단위 입출력 을 사용한다

(21)

File 클래스

An abstract representation of file and directory pathnames

(22)

File class methods

(23)

File class methods

(24)

File class methods

(25)

File class methods

(26)

File class methods

(27)

File class methods

(28)

File class methods

(29)

파일정보 보기

Eclipse에서 실행 매개변수 값 주기

./bin/jnp/y2011/week2/FileInfo.class

(30)

파일 삭제하기

delete() method 사용

(31)

디렉토리 목록 보기

isDirectory()

listFiles()

(32)

임시파일 생성과 삭제

File.createTempFile(“시작“, “끝”);

File.createTempFile(“tmp_”, “.dat”);

deleteOnExit() 사용

(33)

바이트단위 IO 클래스

InputStream

ByteArrayInputStream

FileInputStream

FilterInputStream

• BufferedInputStream

• DataInputStream

• LineNumberInputStream

• PushbackInputStream

ObjectInputStream

PipedInputStream

SequenceInputStream

StringBufferInputStream

(34)

바이트단위 IO 클래스

OutputStream

ByteArrayOutputStream

FileOutputStream

FilterOutputStream

• BufferedOutputputStream

• DataOutputStream

• PrintStream

ObjectOutputStream

PipedOutputStream

(35)

IO Stream을 사용한 입출력

한 바이트씩 읽어서 처리한다.

더 읽을 바이트가 없으면 종료 한다.(^Z)

(36)

InputStream(abstract class)

(37)

OutputStream(abstract class)

(38)

FileInputStream

(39)

FileOutputStream

Buffer를 사용하여 성능개선

(40)

DataInputStream

InputStream

DataInputStream

Byte Stream

Data

int, float, double

(41)

DataOutputStream

(42)

ByteArrayOutputStream

ByteArrayOutputStream

ArrayBuffer

(43)

ByteArrayInputStream

(44)

PipedInputStream

(45)

PipedOutputStream

Thread1 Thread2

PipedInputStream PipedOutputStream

System.in

System.out

(46)

논의

자바IO 클래스는 조합을 이루어 사용한다

Stream 클래스가 기본이다.

필요한 경우에 맞게 조합하여 사용해야 한다.

참조

관련 문서

특정 네임스페이스에 포함되어 있는 식별자를 전역 네임스페이스(또 는 다른 네임스페이스)에 있는 것처럼 사용하는 방법.

채터링을 방지하는 것을 스위치 디바운싱(Debouncing)이라하고 하드웨 어적인 방법과 소프트웨어적인 방법이 있다.. 그러나

입출력 인터페이스, 입출력 채널(channel), 입출력 프로세서, 입출력 제어기 (controller), 장치 제어기(device controller) 등의 여러 가지

• 다중 스레드 방식은 하나의 프로세스 안에 여러 개의 스레드가 있으므로 지금 실행되는 스레드에서 입출력 명령이 발생해서 더 이상 스레드가 실행되지 못하는

통신 기능 RF(Radio Frequency) 송수신 칩, Power Amplifier/안테나, WiFi/Bluetooth/FM/NFC(Near Field communication)/GPS 입출력 기능

• 프로세서 내부에 있는 입출력 데이터와 주소 레지스터를 입출력 모 듈과 연결한 형태로 주소 레지스터와 버스 사이에서 데이터를 직접 전송할 수 있는 가장

통신 기능 RF(Radio Frequency) 송수신 칩, Power Amplifier/안테나, WiFi/Bluetooth/FM/NFC(Near Field communication)/GPS. 입출력 기능

• 주기억장치의 일정 영역을 버퍼로 지정하고 입출력 데이터를 버퍼 에 둔 상태에서 입출력 기능만 별도로 수행하는 입출력 채널이 입출