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

 

9.3.8 BufferedInputStream, BufferedOutputStream

 

Åë½ÅÀÇ È¿À²À» ³ôÀ̱â À§ÇÑ ¹æ¹ýÀ¸·Î ¹öÆÛ¸µ(Buffering)ÀÌ Áß¿äÇÏ°Ô »ç¿ëµË´Ï´Ù. BufferedOutputStreamŬ·¡½º´Â flush()¸Þ¼­µå°¡ È£ÃâµÇ°Å³ª, ¹öÆÛ°¡ ²Ë Âû ¶§±îÁö µ¥ÀÌÅ͸¦ ¹öÆÛ¿¡ ÀúÀåÇß´Ù°¡ ÇѲ¨¹ø¿¡ ½ºÆ®¸²¿¡ ¾²´Â ¹æ½ÄÀÔ´Ï´Ù. ¿¹¸¦ µé¸é 100byte¿¡ ÇØ´çÇÏ´Â Á¤º¸¸¦ ½ºÆ®¸²¿¡ ¾²·Á°í ÇÑ´Ù¸é ±âÁ¸ÀÇ ¹æ½ÄÀº 1byte¾¿ 100¹øÀÇ write()¸Þ¼­µå¸¦ È£ÃâÇØ¾ß ÇßÁö¸¸, ¹öÆÛ¸µÀ» »ç¿ëÇÑ´Ù¸é 100byte¸¦ ¹öÆÛ¿¡ ¸ð¾Æ¼­ 1¹ø¿¡ write()¸Þ¼­µå¸¦ È£ÃâÇÏ¸é µÇ¹Ç·Î »ó´çÈ÷ È¿À²ÀûÀ̶ó°í ÇÒ ¼ö ÀÖ½À´Ï´Ù. BufferedInputStreamŬ·¡½º´Â ÀԷ¿¡ ´ëÇÑ ¹öÆÛ¸µÀ» Çϰí mark()¸Þ¼­µå¿Í reset()¸Þ¼­µå¸¦ Áö¿øÇϱâ À§ÇÑ ±â´ÉÀ» Á¦°øÇØÁÖ°í ÀÖ½À´Ï´Ù.

 

¢Ñ BufferedStream

¹ÙÀÌÆ® ½ºÆ®¸²¸¸À» »ç¿ëÇÒ °æ¿ì Àбâ, ¾²±â µ¿ÀÛÀÌ ¹ß»ýÇÒ ¶§¸¶´Ù ÇÑ ¹ÙÀÌÆ®¾¿ ÀÐ°í ¾²°Ô µÇ¾î ¼º´ÉÀÌ ¶³¾îÁú ¼ö ÀÖÁö¸¸ ¹öÆÛ ½ºÆ®¸²Àº ¹Ì¸® ¹öÆÛ¿¡ µ¥ÀÌÅ͸¦ ´ã¾Æ ó¸®ÇϹǷΠó¸®ÇÏ´Â µ¿ÀÛÀÌ º¸´Ù È¿À²ÀûÀÌ´Ù.

 

´ÙÀ½Àº BufferedInputStream°ú BufferedOutputStreamÀ» ÀÌ¿ëÇÏ¿© ÆÄÀÏÀ» º¹»çÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. ÆÄÀÏ µÎ°³¸¦ ÁغñÇϰí ù¹øÂ° ÆÄÀÏ¿¡¼­ µÎ¹øÂ° ÆÄÀÏ·Î ³»¿ëÀ» º¹»çÇÏ´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¿©±â¼­´Â BufferedStreamTest01.txt°ú BufferedStreamTest02.txt¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù.

 

BufferedInputOutputStreamTest.java (BufferedStreamÀ» Å×½ºÆ®ÇÑ  ¿¹Á¦)

import java.io.*;

public class  BufferedStreamTest {

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

     BufferedInputStream in = new BufferedInputStream(new FileInputStream(args[0]));

     BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(args[1]));

       int s1=0;

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

          out.write(s1);

       }

       in.close();

       out.close();

       System.out.println("Copied...Successfully!");

   }

}

C:\JavaExample\09>javac BufferedStreamTest.java

C:\JavaExample\09>java BufferedStreamTest BufferedStreamTest01.txt BufferedStreamTest02.txt

Copied...Successfully!

 

¿¹Á¦¸¦ ½ÇÇà½ÃŰ¸é ÆÄÀÏ ¡®BufferedStreamTest01.txt¡¯¿¡¼­ ¡®BufferedStreamTest02¡¯ÆÄÀÏ·Î ³»¿ëÀÌ º¹»çµÈ ÈÄ ÆÄÀÏÀÌ ¹«»çÈ÷ º¹»çµÇ¾ú´Ù°í ¡®Copied¡¦Successfully¡¯¶õ ¸Þ½ÃÁö°¡ Ãâ·ÂµË´Ï´Ù.

 

¿¹Á¦¸¦ º¸¸é, BufferedInputStream°´Ã¼ in°ú BufferedOutputStream°´Ã¼ outÀ» »ý¼ºÇÕ´Ï´Ù. À̶§ ÆÄÀϷκÎÅÍ µ¥ÀÌÅ͸¦ ÀÐ°í ´Ù½Ã ´Ù¸¥ ÆÄÀÏ·Î µ¥ÀÌÅ͸¦ ½á ÁÖ±â À§ÇØ¿©, »ý¼ºÀÚ ¸Å°³º¯¼ö·Î FileInputStream °ú FileOutputStreamÀ» »ç¿ëÇÕ´Ï´Ù.

 

n        BufferedInputStream   in =

n                  new BufferedInputStream(new FileInputStream(args[0]));

n        BufferedOutputStream out =

n                  new BufferedOutputStream(new FileOutputStream(args[1]));

 

ÆÄÀÏÀ» BufferedInpuStream°´Ã¼ inÀ¸·Î Àо BufferedOutputStream°´Ã¼ out¿¡ ´ã¾Æ Ãâ·ÂÇÕ´Ï´Ù.

 

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

n           out.write(s1);

n        }

 

 ¡®BufferedStreamTest02.txt¡¯¸¦ ¿­¾îº¸¸é ¡®BufferedStreamTest01.txt¡¯ÀÇ ±ÛÀÌ º¹»çµÇ¾ú´Ù´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 BufferedInputStream & BufferedOutputStreamŬ·¡½º´Â ÀԷ°ú Ãâ·Â¿¡ ´ëÇÑ ¹öÆÛ¸µ(buffering)±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. À̰ÍÀ» ´Ù¸¥ ¸»·Î ÇØ º¸¸é BufferedInputStreamÀº InputStream°´Ã¼¿Í ¹öÆÛ¸¦ ³»ºÎÀûÀ¸·Î °¡Áö°í ÀÖ´Ù´Â °ÍÀ̰í, ¸¶Âù°¡Áö·Î BufferedOutputStreamÀº OutputStream°´Ã¼¿Í ¹öÆÛ¸¦ °¡Áö°í ÀÖ´Â °ÍÀÔ´Ï´Ù. BufferingÀº Åë½Å¿¡ À־ ´ë´ÜÈ÷ Áß¿äÇÑ ±â´ÉÀ¸·Î, À̸¦ ±¸ÇöÇÑ BufferedInputStream°ú Buffered-OutputStreamÀ» ÀûÀýÇÑ °÷¿¡ ¾´´Ù¸é º¸´Ù È¿À²ÀûÀÎ ÇÁ·Î±×·¡¹ÖÀ» ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

 

BufferedInputStream, BufferedOutputStream »ý¼ºÀÚ¸Þ¼­µå

public BufferedInputStream(InputStream in) ÁÖ¾îÁø ¹ÙÀÌÆ® ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇÑ BufferedInputStream °´Ã¼¸¦ »ý¼ºÇϰí, ³»ºÎ ¹öÆÛÀÇ Å©±âÀÎ 512 ¹ÙÀÌÆ®·Î ¼³Á¤ÇÕ´Ï´Ù.

public BufferedInputStream(InputStream in, int size) ÁÖ¾îÁø ¹ÙÀÌÆ® ÀÔ·Â ½ºÆ®¸²¿¡ ´ëÇÑ BufferedInputStream °´Ã¼¸¦ »ý¼ºÇϰí, ³»ºÎ ¹öÆÛÀÇ Å©±â¸¦ ÁÖ¾îÁø Å©±â·Î ¼³Á¤ÇÕ´Ï´Ù.

public BufferedOutputStream(OutputStream out) ÁÖ¾îÁø ¹ÙÀÌÆ® Ãâ·Â ½ºÆ®¸²¿¡ ´ëÇÑ BufferedOutputStream °´Ã¼¸¦ »ý¼ºÇϰí, ³»ºÎ ¹öÆÛÀÇ Å©±âÀÎ 512 ¹ÙÀÌÆ®·Î ¼³Á¤ÇÕ´Ï´Ù.

public BufferedOutputStream(OutputStream out, int size) ÁÖ¾îÁø ¹ÙÀÌÆ® Ãâ·Â ½ºÆ®¸²¿¡ ´ëÇÑ BufferedOutputStream °´Ã¼¸¦ »ý¼ºÇϰí, ³»ºÎ ¹öÆÛÀÇ Å©±â¸¦ ÁÖ¾îÁø Å©±â·Î ¼³Á¤ÇÕ´Ï´Ù

 

BufferedInputStream & BufferedOutputStream ÁÖ¿ä ¸â¹ö¸Þ¼­µå

BufferedInputStream°ú BufferedOutputStream Ŭ·¡½º´Â °¢°¢ InputStream°ú OutputStreamÀÇ ¸ðµç Ç¥ÁØ ¸Þ¼­µå¸¦ Á¦°øÇÕ´Ï´Ù.

 



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