• 검색 결과가 없습니다.

자바네트워크 제3주

N/A
N/A
Protected

Academic year: 2022

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

Copied!
43
0
0

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

전체 글

(1)

자바네트워크 제3주

문자스트림: 문자단위 IO 클래스, 객체스트림

(2)

제5장 문자스트림: 문자단위 IO 클래스

필요성

문자단위 IO 클래스

Reader와 Writer

InputStreamReader와 OutputStreamWriter

FileReader와 FileWriter

BufferedReader와 BufferedWriter

PrinterWriter

CharArrayReader와 CharArrayWriter

StringReader와 StringWriter

논의

(3)

필요성

2바이트 문자를 제대로 읽고 저장하는 클래스

모든 자바 입출력 프로그램에 사용

(4)

문자단위 IO 클래스

입력 클래스는 Reader로 끝난다

출력 클래스는 Writer로 끝난다

O bjec t

Reader

BufferedReader CharArrayReader

FilterReader

InputStreamReader FileReader PipedReader

StringReader

Writer

BufferedWriter CharArrayWriter

FilterWriter

OutputStreamWriter FileWriter PipedWriter

PrintWriter StringWriter

(5)

Reader

추상클래스(abstract class)

(6)

Writer

Abstract class

(7)

InputStreamReader

Input target InputStream InputStream

Reader

(8)

OutputStreamReader

Output target OutputStream OutputStrea

mWriter

(9)

문자 단위로 파일을 읽어서 화 면에 출력

파일의 끝까지 문자를 읽어서 출력한다.

StreamReaderTest

파일

buffer read(buffer)

write(buffer,0, readCount)

(10)

FileReader

(11)

FileWriter

(12)

파일 복사 프로그램

실제 목사 프로그램은 FileReader와 FileWriter를 이용하는 것 보다는 FileInputStream과 FileOutputStream을 사용한다.

FileCopy

파일

buffer read(buffer)

write(buffer,0, readCount)

(13)

BufferedReader

(14)

BufferedWriter

(15)

BufferedReader/Writer를 이용 한 파일 복사

버퍼를 사용하기 때문에 효율적이다

BufferFileCopy

(16)

PrintWriter

(17)

한 줄씩 입력 받아 저장하기

LineWriter

(18)

CharArrayReader

buffer

CharArrayReader

Char

(19)

CharArrayWriter

public char[] toCharArray()

buffer

CharArrayWriter

Char

char[]

toCharArray()

(20)

Char배열로 읽은 후 출력

CharArrayInputOutputTest

(21)

StringReader

(22)

StringWriter

public StringBuffer getBuffer()

public String toString()

(23)

논의

자바 IO 클래스의 사용 예제 를 통한 IO 클래스의 이해

(24)

제6장 객체 스트림

필요성

영화 ‘플라이’로 살펴본 객체스트림

첫 번째 예제: 생각해볼 문제와 갂단한 예제

객체 스트림 소개

두 번째 예제: 나의 책 목록

마샬링하고 싶지 않은 필드에 대한 처리

세 번째 예제: 윈도우 저장과 읽기

ObjectOutputStream 클래스의 생성자와 메소드

ObjectInputStream클래스의 생성자와 메소드

객체 스트림의 예외

논의

(25)

필요성

객체를 파일에 저장하거나 네트워크 젂송 필요

멤버 변수를 순서대로 젂송하고 순서대로 받도록 프로그램 을 해야 함.

이를 쉽게 하지 위한 것이 객체 스트림 이다.

마샬링과 언마샬링의 복잡한 과정을 거친다.

RMI(Remote Method Invocation)과 EJB(Enterprisr Java Beans) 의 기본

Marshaling Unmarshaling

(26)

영화 ‘파리’로 살펴본 객체스 트림

Serialization Deserialization

(27)

첫 번째 예제: 생각해볼 문제 와 갂단한 예제

ObjectStreamWrite

(28)

저장할 객체

“data 1”

“data 2”

“data 3”

“data 4”

v

v3 v2

v1

(29)

저장하는 코드

reset() : resource release

object.dat

Vector v writeObject

(30)

파일로부터 객체 읽기

ObjectStreamRead

(31)

객체 스트림 소개

객체가 젂송되는 것은 참조객체도 같이 젂송

객체는 애플릿, 윈도우 등도 젂송된다.

Serializable Interface가 구현된 클래스만 가능

• No function defined

• Mark interface

Marshaling Unmarshaling

(32)

두 번째 예제: 나의 책 목록

Book class

• String isbn : 책의 isbn 번호

• String title : 책 제목

• String author : 저자

• int price : 책 가격

(33)

책 목록 저장

ArrayList 에 저장 후 저장

BookObjectSave

(34)

책 목록 읽기

BookObjectRead

(35)

마샬링하고 싶지 않은 필드에 대한 처리

transient 필드는 저장되지 않음

BookHidden

(36)

세 번째 예제: 윈도우 저장과 읽기

Serializable 하지 않은 것은 저장되지 않는다.

HelloWin: JFrame

(37)

윈도우 객체 저장하기

WindowObjectSave

(38)

윈도우 객체 읽기

WindowObjectRead

(39)

Serializable Handler

HelloWinSerializable

(40)

ObjectOutputStream class

writeObject()

reset()

flush()

(41)

ObjectInputStream class

readObject()

(42)

객체 스트림의 예외

InvalidClassException

• 클래스가 일치 하지 않을 때

• 버젂 관리가 잘못되었을 때

NotSerializableException

• 객체 또는 필드가 직렬화 할 수 없을 때

StreamCoccuptedException

• 스트림의 객체가 깨졌을 때

InvalidObjectException

• 역직렬화 과정에서 오류가 난 경우

WriteAbortedException

객체를 출력하면서 예외가 발생한 경우

(43)

논의

객체 스트림은 사용하기 쉽다.

RMI의 기본 이므로 잘 이해하고 있어야 한다.

객체 스트림으로 사용할 클래스는 Serializable이어야 한다

객체 스트림을 파일에 저장할 때는 한 파일에 한 객체만 저 장이 가능하다.

참조

관련 문서

• LabVIEW MathScript: 텍스트 기반 언어이며 MathScript 윈도우 또는 노드에 서 사용핛 함수와 스크립트를 작성.. • 도구 > MathScript

수요는 상당히 탄력적인 경우기 빈번하며, 외적 환경요인에 의한 변동도 심하다. 많은 스포츠조직들은 경쟁과

• Channel : an open connection to hardware device, file, network, program component.. •

• 어떤 객체가 다른 객체에게 어떤 일을 수행하도록 명령하기 위해서 우리는 그 객체에 메시지를

보안로그 : 유효하거나 유효하지 않은 로그온 시도, 파일의 생성/열람/삭제에 관련된 이벤트 시스템 로그 : 시스템 부팅 등 윈도우 시스템의 구성요소와

사람은 좋지 않은 것은 언제나 좋지 않은 것이라는 심리적 관성을 가지고

비계나 구조물에 낙하방지시설을 설치 하지 않은 채 작업 상하부 동시작업.. 부실시공으로 인한 연결부위 탈락

 흰색 윈도우에서 마우스 왼쪽 버튼을 누르면 검은색 윈도우의 타이 틀을 “World”에서 “Black”로 변경하자!.  HINT: 검은색