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ºÎ ÀúÀÚ:ÃÖ¿µ°ü |