¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦9Àå ÀÚ¹Ù½ºÆ®¸²  9.3.10 SequenceInputStream  

 

9.3.10 SequenceInputStream

 

SequenceInputStreamŬ·¡½º´Â ¼­·Î ´Ù¸¥ InputStreamÀ» ³í¸®ÀûÀ¸·Î À̾îÁÖ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ÀÔ·Â ½ºÆ®¸²À» ¹ÞÀº ¼ø¼­´ë·Î Çϳª·Î ¿¬°áÇÏ¿©, ÇϳªÀÇ InputStreamÀÎ °Íó·³ ÀÐÀ» ¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù. InputStreamÀ» Çϳª·Î ¿¬°áÇÏ´Â ¹æ¹ýÀº InputStreamÀÌ µÎ °³ÀÎ °æ¿ì¿Í InputStreamÀÌ µÎ °³ ÀÌ»óÀÎ °æ¿ì·Î ³ª´©¾î »ý°¢ÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ¸ÕÀú InputStreamÀÌ µÎ °³ÀÎ °æ¿ì¿¡´Â µÎ °³ÀÇ InputStreamÀ» ¼ø¼­´ë·Î Àоîµé¿©¼­ ÇϳªÀÇ   InputStreamó·³ º¸¿©ÁÖ´Â SequenceInputStream°´Ã¼¸¦ »ý¼ºÇÏ¸é µË´Ï´Ù. ¸¸ÀÏ InputStreamÀÌ µÎ °³ ÀÌ»óÀÎ °æ¿ì¿¡´Â À̾îÁÖ°íÀÚ ÇÏ´Â InputStreamµéÀ» ¹è¿­ÀÇ ¿ä¼Ò·Î ¹ÞÀº ÈÄ¿¡ ¹è¿­¿¡¼­ ¼ø¼­´ë·Î Çϳª¾¿ Â÷·Ê´ë·Î ²ôÁý¾î³»¸é¼­, ÇϳªÀÇ InputStream·Î ¿¬°áÇÏ¸é µË´Ï´Ù. µÎ °¡Áö °æ¿ì¸¦ °¢°¢ ³ª´©¾î º¸¿©µå¸®°Ú½À´Ï´Ù.

 

¢Ñ Sequence

InputStream

¿©·¯ °³ÀÇ ¼­·Î ´Ù¸¥ InputStreamÀ» ÆÄÀÏÀ» ÇϳªÀÇ ±ä InputStream·Î ¸ð¾ÆÁØ´Ù.

 

¸ÕÀú µÎ °³ÀÇ InputStreamÀ» ÇϳªÀÇ InputStreamó·³ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â SequenceInputStream¿¹Á¦ÀÔ´Ï´Ù.

 

SequenceInputTest01.java (SequenceInputStreamÀ» Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

import java.io.*;

import java.util.*;

class SequenceInputTest01 {

   public static void main(String[] args) throws IOException {

       int bn;

       byte[] arr = { 'J', 'a', 'v', 'a', ',' };

     ByteArrayInputStream bi = new ByteArrayInputStream(arr);

     FileInputStream fi = new FileInputStream("sequence.txt");

     SequenceInputStream si = new SequenceInputStream(bi, fi);

       while((bn = si.read()) != -1){

          System.out.write(bn);

       }

       System.out.flush();     

   }

}

C:\JavaExample\09>javac SequenceInputTest01.java

C:\JavaExample\09>java SequenceInputTest01

Java,I Love Jabook!

 

Byte[]ŸÀÔÀÇ arrÀ» »ý¼ºÀÚ ¸Å°³º¯¼ö·Î ByteArrayInputStream°´Ã¼ bi¸¦ ¸¸µé¾ú½À´Ï´Ù.  ¡®Java,¡¯¶ó°í ½è±º¿ä.

 

n        ByteArrayInputStream bi=new ByteArrayInputStream(arr);

 

 FileInputStream°´Ã¼ fi¸¦ »ý¼ºÇÏ¿´½À´Ï´Ù. sample.txt´Â javaÆÄÀϰú °°Àº Æú´õ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. sequence.txt¿¡´Â ¡°I Love Jabook¡±¶ó°í ½á ÀÖ½À´Ï´Ù.

 

n        FileInputStream fi=new FileInputStream("sequence.txt");

 

 ByteArrayInputStream°ú FileInputStreamÀ» Çϳª·Î À̾îÁÙ SequenceInputStreamÀ» ¸¸µé¾ú½À´Ï´Ù.

 

n        SequenceInputStream si=new SequenceInputStream(bi, fi);

 

 read()¸Þ¼­µå´Â SequenceInputStream siÀÇ µ¥ÀÌÅ͸¦ 2byte¾¿ Àо bn¿¡ ¾¹´Ï´Ù. ±× byte´Â 0ºÎÅÍ  255±îÁöÀÇ ¹üÀ§ÀÇ int·Î¼­ µ¹·ÁÁÖ¾îÁý´Ï´Ù. µ¥ÀÌÅ͸¦ ´Ù ÀоîµéÀ̸é EOF(End Of File)À» ¶æÇÏ´Â –1À» ¹ÝȯÇÏ¿© while¹®À» Á¾·áÇÕ´Ï´Ù.

 

n        while((bn=si.read())!=-1){

 

 bnÀ» 2byte¾¿ Àоîµé¿© ¹öÆÛ¿¡ ¾¹´Ï´Ù.

 

n        System.out.write(bn);

 

 ¹öÆÛ¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ ¸ðµÎ Ãâ·ÂÇÕ´Ï´Ù.

 

n        System.out.flush();

 

 Á¤¸®Çغ¼±î¿ä? SequenceInputStreamÀº InputStreamÀ» Çϳª·Î À̾îÁÖ´Â ¿ªÇÒÀ» ¼öÇàÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â InputStream°è¿­ÀÎ ByteArrayInputStream°ú FileInputStreamÀ» ¿¬°áÇØÁÖ¾ú½À´Ï´Ù. ±×·¡¼­ ByteArrayInputStreamÀÇ ¡®Java,¡¯¿Í FileInputStreamÀÇ ¡®IloveYou¡¯¸¦ Çϳª·Î À̾îÁÖ¾ú½À´Ï´Ù. ±× °á°ú ¡®Java, IloveYou¡¯¶ó´Â ±ÛÀÌ µµ½º ÄܼÖâ¿¡ Ãâ·ÂµÇ¾ú½À´Ï´Ù.

 

´ÙÀ½Àº ¿©·¯ °³ÀÇ InputStreamÀ» ÇϳªÀÇ InputStreamó·³ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ´Â SequenceInputStream¿¹Á¦ÀÔ´Ï´Ù.

 

SequenceInputTest02.java (SequenceInputStreamÀ» Å×½ºÆ®Çϱâ À§ÇÑ ¿¹Á¦)

import java.io.*;

import java.util.*;

class SequenceInputTest02 {

   public static void main(String[] args) throws IOException {

       int bn = 0;

     FileInputStream fi1 = new FileInputStream("sequence01.txt");

     FileInputStream fi2 = new FileInputStream("sequence02.txt");

     FileInputStream fi3 = new FileInputStream("sequence03.txt");

       Vector v = new Vector();

       v.addElement(fi1);

       v.addElement(fi2);

       v.addElement(fi3);

       SequenceInputStream si = new SequenceInputStream(v.elements());

       while((bn = si.read()) != -1){

          System.out.write(bn);

       }

       System.out.flush();     

   }

}

C:\JavaExample\09>javac SequenceInputTest02.java

C:\JavaExample\09>java SequenceInputTest02

1.I Love Java!2.jabook-Home3.http://www.jabook.org

 

ù¹øÂ° FileInputStream°´Ã¼ fi1À» ¸¸µé¾ú½À´Ï´Ù. sequence01.txt´Â .javaÆÄÀϰú °°Àº Æú´õ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. sequence01.txtÀÇ ³»¿ëÀº ¡°1.I Love Java!¡± ÀÔ´Ï´Ù.

 

n        FileInputStream fi1=new FileInputStream("sequence01.txt");

 

µÎ¹øÂ° FileInputStream°´Ã¼ fi2¸¦ »ý¼ºÇÕ´Ï´Ù. sequence02.txtµµ .javaÆÄÀϰú °°Àº Æú´õ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. sequence02.txtÀÇ ³»¿ëÀº ¡°2.jabook-Home¡± ÀÔ´Ï´Ù.

 

n        FileInputStream fi2=new FileInputStream("sequence02.txt");

 

¼¼¹øÂ° FileInputStream°´Ã¼ fi3¸¦ »ý¼ºÇÕ´Ï´Ù. sequence03.txt ¿ª½Ã .javaÆÄÀϰú °°Àº Æú´õ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. sequence03.txtÀÇ ³»¿ëÀº ¡°3.http://www.jabook.org¡± ÀÔ´Ï´Ù.

 

n        FileInputStream fi3=new FileInputStream("sequence03.txt ");

 

 º¤Å͸¦ ¸¸µé°í InputStreamÀ» Áý¾î³Ö¾ú½À´Ï´Ù.

 

n        Vector v=new Vector();

n        v.addElement(fi1);

n        v.addElement(fi2);

n        v.addElement(fi3);

 

 FileInputStreamµéÀ» Çϳª·Î À̾îÁÙ SequenceInputStreamÀ» »ý¼ºÇÕ´Ï´Ù.

 

n        SequenceInputStream si=new SequenceInputStream(v.elements());

 

read()¸Þ¼­µå´Â SequenceInputStream°´Ã¼ siÀÇ µ¥ÀÌÅ͸¦ 2byte¾¿ Àо bn¿¡ ¾¹´Ï´Ù. ±× byte´Â 0ºÎÅÍ 255±îÁöÀÇ ¹üÀ§ÀÇ intÇüÀ¸·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù. µ¥ÀÌÅ͸¦ ´Ù ÀоîµéÀ̸é EOF(End Of File)À» ¶æÇÏ´Â –1À» ¹ÝȯÇÏ¿© while¹®À» Á¾·áÇÕ´Ï´Ù.

 

n        while((bn=si.read())!=-1){

 

 bnÀ» 2byte¾¿ Àоîµé¿© ¹öÆÛ¿¡¾¹´Ï´Ù.

 

n        System.out.write(bn);

 

 ¹öÆÛ¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ ¸ðµÎ Ãâ·ÂÇÕ´Ï´Ù.

 

n        System.out.flush();

 

°á°ú¸¦ Á¤¸®Çؼ­ ¼³¸íÇØ µå¸®°Ú½À´Ï´Ù. µÎ °³ ÀÌ»óÀÇ FileInputStreamÀ» º¤ÅÍ¿¡ ³ÖÀº ÈÄ, SequenceInputStream¿¡¼­ º¤Å;ÈÀÇ ¸ðµç InputStreamÀ» Çϳª·Î ¿¬°áÇØÁÖ¾ú½À´Ï´Ù. ±×¸®°í³ª¼­ SequenceInputStreamÀÇ ³»¿ëÀ» µµ½º ÄܼÖâ¿¡ Ãâ·ÂÇØº¸´Ï, ¡®1.ILoveJava!2.Jabook-Home3.http://www.jabook.org¡¯¶ó´Â ±ÛÀÌ Ãâ·ÂµÇ¾ú½À´Ï´Ù.

 

SequenceInputStreamÀº ¿©·¯ °³ÀÇ InputStreamÀ» ÇϳªÀÇ InputStreamÀ¸·Î À̾îÁÖ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. InputStreamÀ» À̾îÁÖ´Â ¹æ¹ýÀº µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù. ¸ÕÀú µÎ °³ÀÇ inputStreamÀ» À̾îÁÖ´Â ¹æ¹ý°ú ¿©·¯ °³ÀÇ InputStreamÀ» À̾îÁÖ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

 

SequenceInputStream »ý¼ºÀÚ¸Þ¼­µå

public SequenceInputStream(InputStream s1, InputStream s2) : ÁÖ¾îÁø µÎ °³ÀÇ InputStreamÀ» ÇϳªÀÇ InputStreamó·³ ¼ø¼­´ë·Î »ç¿ëÇÏ´Â SequenceInputStream °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù

public SequenceInputStream(Enumeration e) : ÁÖ¾îÁø Enumeration °´Ã¼°¡ Æ÷ÇÔÇϰí ÀÖ´Â ¸ðµç InputStreamÀ» ÇϳªÀÇ ÀÔ·Â ½ºÆ®¸²Ã³·³ ¼ø¼­´ë·Î »ç¿ëÇÏ´Â SequenceInputStream °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.

 

SequenceInputStream ÁÖ¿ä ¸Þ¼­µå

public int available() : ÇöÀçÀÇ ½ºÆ®¸²¿¡ ÀÖ´Â ¹ÙÀÌÆ® ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù.

public void close() : InputStreamÀ» ´Ý°í, °ü·ÃµÈ ¸ðµç ½Ã½ºÅÛ¸®¼Ò½º¸¦ ÇØÁ¦ÇÕ´Ï´Ù.

public int read() : InputStream¿¡¼­ µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù.

 



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ
ÀúÀÚ:ÃÖ¿µ°ü