Docstoc

Real Time Databases - PowerPoint

Document Sample
Real Time Databases - PowerPoint Powered By Docstoc
					     6. 필터 입출력 스트림
7. 객체 직렬화와 무작위 접근 파일




       2001. 03. 12
         홍현택
                 contents
6. 필터 입출력 스트림
 가.   필터 입출력 스트림
 나.   필터 입출력 스트림
 다.   버퍼 입출력 스트림
 라.   데이터 입출력 스트림
 마.   라인번호 입력 스트림
 바.   되돌림 입력 스트림
 사.   프린트 출력 스트림


7. 객체 직렬화와 무작위 접근 파일
 가.   객체 직렬화
 나.   직렬화 인터페이스
 다.   자료압축, 자료손상검사, 파일묶기
 라.   RandomAccessFile 클래스(무작위접근 파일)


                      hongry           2/20
+ java.io.InputStream                       + java.io.Writer
   + java.io.FilterInputStream                   + java.io.FilterWriter
       +   java.io.BufferedInputStream           + java.io.BufferedWriter
       +   java.io.DataInputStream               + java.io.PrintWriter
       +   java.io.LineNumberInputStream
       +   java.io.PushbackInputStream      + java.io.RandomAccessFile

+ java.io.Reader
   + java.io.FilterReader
       + java.io.PushbackReader
   + java.io.BufferedReader
       + java.io.LineNumberReader


+ java.io.OutputStream
   + java.io.FilterOutputStream
       + java.io.BufferedOutputStream
       + java.io.DataOutputStream
       + java.io.PrintStream


                                        hongry                              3/20
               필터 입출력 스트림
• 원하는 형태의 스트림을 얻어냄
    – 원하는 부분 추출
    – 불필요한 부분 삭제


•   FilterInputStream(InputStream in) - protected
•   FilterOutputStream(OutputStream out)
•   FilterReader(Reader in) - protected
•   FilterWriter(Writer out)




                           hongry                   4/20
hongry   5/20
               버퍼 입출력 스트림
• 입력
    – 버퍼에 데이터를 미리 가져다 놓음
• 출력
    – 버퍼에 출력시킨 후
       버퍼가 꽉 찼을때, flush 가 호출될때, close 가 호출될때 출력
• 버퍼링을 하지 않을 경우
    – 메소드를 호출할때마다 파일에서 바이트를 읽음


•   BufferedInputStream(InputStream in, int size)
•   BufferedOutputStream(OutputStream out, int size)
•   BufferedReader(Reader in, int sz)
•   BufferedWriter(Writer out, int sz)

                          hongry                  6/20
hongry   7/20
                   데이터 입출력 스트림
• 바이트 단위 뿐만 아니라 기본형을 읽고 쓸 수 있도록 함
   – 기본형 : boolean, byte, char, short, int, long, float, double
   – 이미지 파일을 다루려 할 때 사용

• DataInputStream(InputStream in)
• DataOutputStream(OutputStream out)

   –   int read(byte[] b, int off, int len), void write(byte[] b, int off, int len)
   –   Boolean readBoolean(), void writeBoolean(boolean v)
   –   Byte readByte(), void writeByte(int v)
   –   Short readShort(), void writeShort(int v)
   –   Int readInt(), void writeInt(int v)
   –   Long readLong(), void writeLong(long v)
   –   Char readChar(), void writeChar(int v)
   –   Float readFloat(), void writeFloat(float v)
   –   Double readDouble(), void writeDouble(double v)
   –   String readUTF(), void writeDouble(double v)


                                        hongry                                    8/20
hongry   9/20
            라인 번호 입력 스트림
• 현재 라인 번호를 유지

• LineNumberInputStream(InputStream in)
• LineNumberReader(Reader in, int sz)

  – int getLineNumber();
  – void setLineNumber(int linenumber);




                           hongry         10/20
         엔터키 때문에
          두번씩 출력




hongry     11/20
             되돌림 입력 스트림
• 바로 전으로 되돌림

• PushbackInputStream(InputStream in, int size)
• PushbackReader(Reader in, int size)




                        hongry                    12/20
hongry   13/20
                프린트 출력 스트림
• java.lang.System 의 field
   – static printStream err
   – static printStream out
• 각각의 플랫폼에 적합한 출력 제공

• PrintStream(OutputStream out, boolean autoFlush)
• PrintWriter(OutputStream out, boolean autoFlush)
   – PrintWriter(Writer out, boolean autoFlush)

   – void print(char c);
   – void println(char c);



                              hongry              14/20
                                   객체 직렬화
•   객체를 스트림화
     – 객체 자체의 내용을 입출력 형식에 구애받지 않고 저장
     – 객체의 내용을 네트워크를 통하여 손쉽게 교환


•   ObjectInputStream(InputStream in)
     – ObjectOutput 인터페이스 구현
             FileInputStream istream = new FileInputStream(“test.txt”);
             ObjectInputStream p = new ObjectInputStream(istream);
             Int I = p.readInt();
             String today = (String)p.readObject();
             Date day = (Date)p.readObject();
             Istream.close();




•   ObjectOutputStream(OutputStream out)
     – ObjectInput 인터페이스 구현
             FileOutputStream ostream = new FileOutputStream(“test.txt”);
             ObjectOutputStream p = new ObjectOutputStream(ostream);
             p.writeInt(12345);
             p.writeObject(“today”);
             p.writeObject(new Date());
             p.flush();
             ostream.close();


                                                   hongry                   15/20
                     직렬화 인터페이스
• Serializable 인터페이스
  – Serializable 인터페이스를 구현하지 않은 클래스의 객체는
    직렬화로 입출력 할 수 없음
  –   Private void writeObject(java.io.ObjectOutputStream out) throws IOException
  –   Private void readObjet(java.io.ObjectInputStream in) throws IOException


• Externalizable 인터페이스
  – 객체 직렬화에 대한 더욱 완전한 제어 제공




                                        hongry                                  16/20
hongry   17/20
   파일 압축, 자료 손상 검사, 파일 묶기
• CheckedInputStream, CheckedOutputStream
   – 자료의 손상 검사
• Deflater, DeflaterOutputStream, DeflaterInputStream
   – 자료 압축
• Inflater
   – 압축 복원


• 자바 자체에서 JAR라는 압축 포맷을 제공하므로 거의 사용 안함




                             hongry                     18/20
      RandomAccessFile
• 파일의 임의의 위치에서 입출력 수행
• 한 클래스에서 입출력 동시 제공
• 파일 포인터 존재




              hongry     19/20
hongry   20/20

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:7
posted:7/31/2011
language:Korean
pages:20