¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ  Á¦9Àå ÀÚ¹Ù½ºÆ®¸²  9.3.12 ByteArrayInputStream, ByteArrayOutputStream  

 

9.3.13 ByteArrayInputStream, ByteArrayOutputStream

 

ByteArrayInputStream & ByteArrayOutputStream´Â ¹ÙÀÌÆ®·Î ±¸¼ºµÈ ¹è¿­À» ÀÐ¾î µéÀÎÈÄ, ´Ù½Ã ±× ¹è¿­À» Ãâ·ÂÇÏ´Â µ¥ »ç¿ëµÇ´Â Ŭ·¡½º ÀÔ´Ï´Ù. ¹ÙÀÌÆ® ¹è¿­¸¸ ÀÐÀ» ¼ö Àֱ⠶§¹®¿¡ »ç¿ëÇϱ⠾î·Á¿î ÆíÀº ¾Æ´Ñ Ŭ·¡½º ÀÔ´Ï´Ù. ¿¹Á¦¸¦ ¸ÕÀú »ìÆìº¸°Ú½À´Ï´Ù.

 

ArrayStreamTest.java (ByteArrayInputStream,ByteArrayOutputStreamÀ» Å×½ºÆ®ÇÑ ¿¹Á¦)

import java.io.*;

class ByteArrayStreamTest {

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

       int i;

       byte[] arr = {(byte)'j',(byte)'a',(byte)'b',(byte)'o',(byte)'o',(byte)'k'} ;

      ByteArrayInputStream in = new ByteArrayInputStream(arr);

     ByteArrayOutputStream out = new ByteArrayOutputStream();

       while((i = in.read()) != -1) {

          out.write(i);     

       }

       System.out.println(out.toString());

       in.close();

       out.close();

   }

}

C:\JavaExample\09>javac ByteArrayStreamTest.java

C:\JavaExample\09>java ByteArrayStreamTest

jabook

 

À§ÀÇ ¿¹Á¦´Â ¹ÙÀÌÆ® ¹è¿­À» ÀÐ¾î µé¿©¼­ ±× °ªÀ» intÇüÀÇ Á¤¼ö·Î º¯È¯ÇÑ ÈÄ ±× °ªÀ» ´Ù½Ã ¹®ÀÚ·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

 

¿¹Á¦¿¡¼­ ¸ÕÀú ¹ÙÀÌÆ® ¹è¿­À» »ý¼ºÇÏ¿´½À´Ï´Ù.

 

n        byte arr[] = { (byte)'j',(byte)'a',(byte)'b',(byte)'o',(byte)'o',(byte)'k' } ;

 

Ãâ·ÂÇÏ·Á´Â ±ÛÀ» ÀüºÎ ij½ºÆÃÇÏ¿© ¹ÙÀÌÆ® ÇüÀ¸·Î ¹Ù²Ù¾î ÁØ ÈÄ, ¹è¿­ arr¿¡ °ªÀ» Áý¾î ³Ö¾î ¹è¿­À» »ý¼ºÇÏ¿´½À´Ï´Ù. ±× ÈÄ¿¡ ¹ÙÀÌÆ® ¹è¿­À» ByteArrayInputStreamŬ·¡½º¸¦ »ç¿ëÇÏ¿© ÀÐ¾î µéÀ̰í, ByteArrayInputStreamŬ·¡½ºÀÇ °´Ã¼ in¸¦ »ý¼ºÇÕ´Ï´Ù. 

 

n        ByteArrayInputStream in = new ByteArrayInputStream(arr);

 

 »ý¼ºµÈ °´Ã¼¸¦ »ç¿ëÇÏ¿© read()¸Þ¼­µå·Î °ªÀ» ÀԷ¹޽À´Ï´Ù.

 

n        while((i=in.read()) != -1) { }

 

À§ÀÇ ±¸¹®¿¡¼­ read() ¸Þ¼­µå´Â ¹ÙÀÌÆ®¸¦ Àо ±× ¹ÙÀÌÆ®ÀÇ °ªÀ» 0ºÎÅÍ 255»çÀÌÀÇ intÇüÁ¤¼ö·Î ¹ÝȯÇÏ´Â ¸Þ¼­µåÀÔ´Ï´Ù. ¸¸¾à ¹ÙÀÌÆ® ¹è¿­ÀÇ ³¡À» ¸¸³ª°Ô µÇ¸é -1ÀÇ °ªÀ» ¹ÝȯÇÕ´Ï´Ù. ÇÁ·Î±×·¥À¸·Î µ¹¾Æ°¡¼­ ¼³¸íÇÏ¸é ¹ÙÀÌÆ® ¹è¿­À» Àо ±× °ªÀÌ ÀÖÀ¸¸é while¹®À» ½ÇÇàÇϰí, ¹è¿­ÀÇ ³¡À» ¸¸³ª¸é while¹®À» Á¾·áÇ϶ó´Â ¶æ ÀÔ´Ï´Ù.

 ±×¸®°í ByteArrayOutputStreamÀÇ °´Ã¼ outÀ» »ý¼ºÇÕ´Ï´Ù.

 

n        ByteArrayOutputStream out = new ByteArrayOutputStream();

 

»ý¼ºµÈ °´Ã¼ outÀ» »ç¿ëÇÏ¿© write(int b) ¸Þ¼­µå¸¦ È£ÃâÇÏ¿© while¹® ¾È¿¡¼­ »ç¿ëÇÏ°Ô µË´Ï´Ù.

 

n        out.write(i);

 

write(int b) ¸Þ¼­µå´Â ÁöÁ¤µÈ ¹ÙÀÌÆ®¸¦ ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ±×¸®°í toString() ¸Þ¼­µå¸¦ »ç¿ëÇÏ¿© ¹öÆÛÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î º¯È¯Çϰí, Ç÷§ÆûÀÇ ±âº» ¹®ÀÚ ÀÎÄÚµù¿¡ µû¶ó ¹ÙÀÌÆ®¸¦ ¹®ÀÚ·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÏ¿´½À´Ï´Ù.

 

n        System.out.println(out.toString());

 

ByteArrayInputStream & ByteArrayOutputStreamŬ·¡½º´Â ¹ÙÀÌÆ® ¹è¿­À» ÀÐ¾î µé¿©¼­ ±× °ªÀ» intÇüÀÇ Á¤¼ö·Î º¯È¯ÇÑ ÈÄ ±× °ªÀ» ´Ù½Ã ¹®ÀÚ·Î º¯È¯ÇÏ¿© Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

¹ÙÀÌÆ® ¹è¿­À» »ç¿ëÇÒ °æ¿ì »ç¿ëÇÑ ´Ù´Â »ç½ÇÀ» ±â¾ïÇÏ½Ã¸é µË´Ï´Ù.

 

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

public ByteArrayInputStream(byte[] buf) : ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿­¿¡¼­ µ¥ÀÌÅ͸¦ Àд »õ·Î¿î ¹ÙÀÌÆ® ¹è¿­ ÀÔ·Â ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù.

public ByteArrayInputStream(byte[] buf, int offset, int length) : ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿­¿¡¼­ µ¥ÀÌÅ͸¦ Àд »õ·Î¿î ¹ÙÀÌÆ® ¹è¿­ ÀÔ·Â ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù.

 

ByteArrayInputStream ÁÖ¿ä ¸Þ¼­µå

public int available() : ½ÇÇàÀ» Áß´ÜÇÏÁö ¾Ê°í ÀÔ·Â ½ºÆ®¸²¿¡¼­ ÀÐÀ» ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù.

public void mark(int readAHeadLimit) : ½ºÆ®¸²ÀÇ ÇöÀç Ç¥½ÃµÈ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù.

public boolean markSupported() : ByteArrayInputStreamÀÌ Ç¥½Ã/Àç¼³Á¤À» Áö¿øÇÏ´ÂÁö ¿©ºÎ¸¦ Å×½ºÆ®ÇÕ´Ï´Ù.

public int read() : ÀÔ·Â ½ºÆ®¸²¿¡¼­ ´ÙÀ½ µ¥ÀÌÅÍ ¹ÙÀÌÆ®¸¦ ÀнÀ´Ï´Ù.

public int read(byte[] b, int off, int len) : ÀÔ·Â ½ºÆ®¸²¿¡¼­ ÃÖ´ë len ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ ¹è¿­·Î ÀнÀ´Ï´Ù.

public void reset() : ¹öÆÛ¸¦ Ç¥½ÃµÈ À§Ä¡·Î Àç¼³Á¤ÇÕ´Ï´Ù.

public void skip(long) : ÀÔ·Â ½ºÆ®¸²¿¡¼­ n ¹ÙÀÌÆ®ÀÇ ÀÔ·ÂÀ» °Ç³Ê¶Ý´Ï´Ù.

 

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

public ByteArrayOutputStream() : »õ·Î¿î ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù.

public ByteArrayOutputStream(int size) : ÁöÁ¤µÈ Å©±âÀÇ ¹öÆÛ ¿ë·®(¹ÙÀÌÆ® ´ÜÀ§)À¸·Î »õ·Î¿î ¹è¿­ Ãâ·Â ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù.

 

ByteArrayOutputStream ÁÖ¿ä ¸Þ¼­µå

public void reset() : Ãâ·Â ½ºÆ®¸² ³»ÀÇ ÇöÀç ´©ÀûµÈ ¸ðµç Ãâ·ÂÀÌ ¹ö·ÁÁöµµ·Ï ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²ÀÇ count Çʵ带 0À¸·Î Àç¼³Á¤ÇÕ´Ï´Ù.

public int size() : ¹öÆÛÀÇ ÇöÀç Å©±â¸¦ ¹ÝȯÇÕ´Ï´Ù.

public byte [] toByteArray() : »õ·Î ÇÒ´çµÈ ¹ÙÀÌÆ® ¹è¿­À» ÀÛ¼ºÇÕ´Ï´Ù.

public String toString() : ¹öÆÛÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î º¯È¯Çϰí, Ç÷§ÆûÀÇ ±âº» ¹®ÀÚ ÀÎÄÚµù¿¡ µû¶ó ¹ÙÀÌÆ®¸¦ ¹®ÀÚ·Î º¯È¯ÇÕ´Ï´Ù.

public String toString(int hibyte) : »õ·Î ÇÒ´çµÈ ¹®ÀÚ¿­À» ÀÛ¼ºÇÕ´Ï´Ù. Deprecated

public String toString(String enc) : ¹öÆÛÀÇ ³»¿ëÀ» ¹®ÀÚ¿­·Î º¯È¯Çϰí, ÁöÁ¤µÈ ¹®ÀÚ ÀÎÄÚµù¿¡ µû¶ó ¹ÙÀÌÆ®¸¦ ¹®ÀÚ·Î º¯È¯ÇÕ´Ï´Ù.

public void write(byte[] b, int off, int len) : len°³ÀÇ ¹ÙÀÌÆ®¸¦ ¿ÀÇÁ¼Â off¿¡¼­ ½ÃÀÛÇÏ¿© ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿­¿¡¼­ ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÕ´Ï´Ù.

public void write(int b) : ÁöÁ¤µÈ ¹ÙÀÌÆ®¸¦ ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÕ´Ï´Ù.

public void writeTo(OutputStream out) : out.write(buf, 0, count)¸¦ »ç¿ëÇÏ¿© Ãâ·Â ½ºÆ®¸²ÀÇ write ¸Þ¼­µå¸¦ È£ÃâÇÏ´Â °Íó·³ ¹ÙÀÌÆ® ¹è¿­ Ãâ·Â ½ºÆ®¸²ÀÇ ³»¿ë Àüü¸¦ ÁöÁ¤µÈ Ãâ·Â ½ºÆ®¸² Àμö¿¡ ±â·ÏÇÕ´Ï´Ù.

 



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