FileInputStream, FileOutputStreamŬ·¡½º´Â ÆÄÀÏ ³»¿ëÀ» ÀоîµéÀ̰ųª, ÆÄÀÏ¿¡ ³»¿ëÀ» Ãâ·ÂÇÒ ¶§ »ç¿ëµË´Ï´Ù. ÀÌ Å¬·¡½ºµµ IOÆÐŰÁö Áß¿¡¼ »ç¿ëºóµµ°¡ ³ôÀº Ŭ·¡½ºÁß ÇϳªÀÔ´Ï´Ù.
´ÙÀ½ ¿¹Á¦´Â FileInputStream°ú FileOutputStreamŬ·¡½º¸¦ »ç¿ë, ÆÄÀÏÀ» º¹»çÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
FileInputOutputStreamTest.java (FileInputStream, FileOutputStreamÀ» Å×½ºÆ®ÇÑ ¿¹Á¦) |
import java.io.*; public class FileInputOutputStreamTest { public static void main(String[] args) { int i, len=0; InputStream in=null; OutputStream out=null; if(args.length < 2) { System.out.println("¿øº» ÆÄÀϰú º¹»çµÉ ÆÄÀÏÀÇ À̸§À» ÀÔ·ÂÇϽʽÿä!"); System.exit(-1); } System.out.println("¿øº»ÆÄÀÏ : "+args[0]); System.out.println("¸ñÇ¥ÆÄÀÏ : "+args[1]); try { in = new FileInputStream(new File(args[0])); out = new FileOutputStream(args[1], true); } catch(FileNotFoundException e) { System.out.println(e); } catch(IOException e) { System.out.println(e); } try { while((i=in.read()) != -1) { out.write(i); len++; } in.close(); out.close(); System.out.println(len+" bytes are copied...Successfully!"); } catch(IOException e1) { System.out.println(e1); } } } |
C:\JavaExample\09>javac FileInputOutputStreamTest.java C:\JavaExample\09>java FileInputOutputStreamTest FileStreamTest01.txt FileStreamTest02.txt ¿øº»ÆÄÀÏ : FileStreamTest01.txt ¸ñÇ¥ÆÄÀÏ : FileStreamTest02.txt 94 bytes are copied...Successfully! |
À§ÀÇ ¿¹Á¦´Â ÆÄÀÏÀ» º¹»çÇÏ´Â ÇÁ·Î±×·¥ ¿¹Á¦ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§´Â ¿øº» ÆÄÀÏÀÇ À̸§°ú ¸ñÇ¥ ÆÄÀÏÀÇ À̸§À» ÁöÁ¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¡®¿øº» ÆÄÀϰú º¹»çµÉ ÆÄÀÏÀÇ À̸§À» ÀÔ·ÂÇϽʽÿä!¡¯¶ó´Â ¿¡·¯¹®À» Ãâ·ÂÇÏ°í¼ ÇÁ·Î±×·¥ÀÌ Á¾·áµË´Ï´Ù. ¶ÇÇÑ ¿øº»ÆÄÀÏÀÌ ÀÌ ÇÁ·Î±×·¥ÆÄÀϰú °°Àº µð·ºÅ͸®¾È¿¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ÆÄÀÏÀÌ ´Ù¸¥ À§Ä¡³ª À̸§ÀÌ Æ²·ÈÀ» °æ¿ì¿¡´Â ¡°java.io.FileNotFoundException: Test.txt (ÁöÁ¤µÈ ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù)¡± ¶ó´Â ¿¡·¯¹®ÀÌ Ãâ·ÂµË´Ï´Ù.
n if(args.length < 2) {
n System.out.println("¿øº» ÆÄÀϰú º¹»çµÉ ÆÄÀÏÀÇ À̸§À» ÀÔ·ÂÇϽʽÿä!");
n System.exit(-1);
n }
±×¸®°í, »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¿øº»ÆÄÀÏÀ¸·Î File°´Ã¼¸¦ »ý¼ºÇϰí, ±× »ý¼ºµÈ °´Ã¼¸¦ FileInputStreamÀÇ ¸Å°³º¯¼ö·Î ÇÏ¿© FileInputStreamÀÇ °´Ã¼ inÀ» »ý¼ºÇÕ´Ï´Ù.
n FileInputStream in = new FileInputStream(new File(args[0]));
»ý¼ºµÈ °´Ã¼¸¦ »ç¿ëÇÏ¿© FileInputStreamŬ·¡½ºÀÇ ¸â¹ö¸Þ¼µåÀÎ read()¸Þ¼µå¸¦ while¹®°ú °°ÀÌ »ç¿ëÇÕ´Ï´Ù.
n while((i=in.read()) != -1) { };
À§ÀÇ ±¸¹®¿¡¼ read()¸Þ¼µå´Â ÀÔ·Â ½ºÆ®¸²¿¡¼ µ¥ÀÌÅÍ ¹ÙÀÌÆ®¸¦ ÀнÀ´Ï´Ù. µ¥ÀÌÅ͸¦ ÀÐÀ» ¶§ ÇÑ ¹ÙÀÌÆ®¾¿ ÀÐ¾î µéÀ̰í, ÀÐÀº µ¥ÀÌÅÍ´Â intÇüÀÇ Á¤¼ö·Î º¯È¯µÇ¾î ¹ÝȯµË´Ï´Ù. µ¥ÀÌÅ͸¦ Àо ´ÙÀ½ Æ÷ÀÎÆ®´Â ´ÙÀ½ ¹ÙÀÌÆ®·Î À̵¿ÇÕ´Ï´Ù. ÀÌ read() ¸Þ¼µå´Â ÀÔ·ÂÀÌ ÀÖÀ» ¶§±îÁö ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù. µ¥ÀÌÅÍÀÇ ³¡¿¡ µµ´ÞÇϸé -1ÀÌ ¹ÝȯµË´Ï´Ù.
FileOutputStreamÀÇ °´Ã¼µµ »ý¼ºÇÏ¿©¾ß ÇÕ´Ï´Ù. À§ÀÇ ¿¹Á¦¿¡¼´Â FileOutputStreamÀÇ °´Ã¼¸¦ »ý¼ºÇÒ ¶§ ÆÄÀÏ À̸§°ú booleanŸÀÔÀÇ º¯¼öµµ °°ÀÌ ÁöÁ¤ÇÏ¿´½À´Ï´Ù. true°ªÀ» °¡Áö¸é ¸ñÇ¥ÆÄÀÏÀÇ ³¡¿¡¼ºÎÅÍ ÀÐÀº ³»¿ëÀ» °¡Á®´Ù º¹»ç¸¦ Çϰí, falseÀÌ¸é ¸ñÇ¥ÆÄÀÏÀÇ ³»¿ëÀ» ´Ù »èÁ¦ÇÑ ÈÄ ÀÐÀº ³»¿ëÀ» º¹»çÇÕ´Ï´Ù
n out = new FileOutputStream(args[1], true);
n out.write(i);
ÀÐÀº byteµéÀº write(int b)¸Þ¼µå¸¦ »ç¿ëÇÏ¿© ÁöÁ¤µÈ byte¸¦ FileOutputStream¿¡ ±â·ÏÇÕ´Ï´Ù.
FileInputStream »ý¼ºÀÚ¸Þ¼µå |
public FileInputStream(File file) : ÁöÁ¤µÈ File °´Ã¼¿¡¼ Àбâ À§ÇØ ÀÔ·Â ÆÄÀÏ ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù. public FileInputStream(FileDescriptor fdObj) : ÁöÁ¤µÈ ÆÄÀÏ ¼³¸íÀÚ¿¡¼ Àбâ À§ÇØ ÀÔ·Â ÆÄÀÏ ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù. public FileInputStream(String name) : ÁöÁ¤µÈ À̸§ÀÇ ÆÄÀÏ¿¡¼ Àбâ À§ÇØ ÀÔ·Â ÆÄÀÏ ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù. |
FileInputStream ÁÖ¿ä ¸â¹ö¸Þ¼µå |
public int available() : ½ÇÇàÀ» Áß´ÜÇÏÁö ¾Ê°í ÆÄÀÏ ÀÔ·Â ½ºÆ®¸²¿¡¼ ÀÐÀ» ¼ö ÀÖ´Â ¹ÙÀÌÆ®ÀÇ ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù. public void close() : ÆÄÀÏ ÀÔ·Â ½ºÆ®¸²À» ´Ý°í ½ºÆ®¸²°ú ¿¬°üµÈ ½Ã½ºÅÛ ÀÚ¿øÀ» ÇØÁ¦ÇÕ´Ï´Ù. protected void finalize() : ´õ ÀÌ»ó ÂüÁ¶ÇÏÁö ¾ÊÀ» °æ¿ì ÆÄÀÏ ÀÔ·Â ½ºÆ®¸²ÀÇ close ¸Þ¼µå¸¦ ´Ý½À´Ï´Ù. public FileDescriptor getFD() : ½ºÆ®¸²°ú ¿¬°üµÈ ºÒÅõ¸í(opaque) ÆÄÀÏ ¼³¸íÀÚ °´Ã¼¸¦ ¸®ÅÏÇÕ´Ï´Ù. public int read() : ÀÔ·Â ½ºÆ®¸²¿¡¼ µ¥ÀÌÅÍ ¹ÙÀÌÆ®¸¦ ÀнÀ´Ï´Ù. public int read(byte[] b) : ÃÖ´ë b.length ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ ÀÔ·Â ½ºÆ®¸²¿¡¼ ¹ÙÀÌÆ®ÀÇ ¹è¿·Î ÀнÀ´Ï´Ù. public int read(byte[] b, int off, int len) : ÃÖ´ë len ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ ÀÔ·Â ½ºÆ®¸²¿¡¼ ¹ÙÀÌÆ®ÀÇ ¹è¿·Î ÀнÀ´Ï´Ù. public long skip(long n) : ÀÔ·Â ½ºÆ®¸²¿¡¼ n ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¦ °Ç³Ê¶Ú ÈÄ ¹ö¸³´Ï´Ù. |
FileOutputStream »ý¼ºÀÚ¸Þ¼µå |
public FileOutputStream(File file) : ÁöÁ¤µÈ File °´Ã¼¿¡ ±â·ÏÇϱâ À§ÇÑ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù. public FileOutputStream(FileDescriptor fdObj) : ÁöÁ¤µÈ ÆÄÀÏ ¼³¸íÀÚ¿¡ ±â·ÏÇϱâ À§ÇÑ Ãâ·Â ÆÄÀÏ ½ºÆ®¸²À» ÀÛ¼º public ÇÕ´Ï´Ù. public FileOutputStream(String name) : ÁöÁ¤µÈ À̸§ÀÇ ÆÄÀÏ¿¡ ±â·ÏÇϱâ À§ÇÑ Ãâ·Â ÆÄÀÏ ½ºÆ®¸²À» ÀÛ¼ºÇÕ´Ï´Ù. public FileOutputStream(String name, boolean append) : ÁöÁ¤µÈ ½Ã½ºÅÛ Á¾¼Ó ÆÄÀϸíÀ¸·Î Ãâ·Â ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù. |
FileOutputStream ÁÖ¿ä ¸â¹ö¸Þ¼µå |
public void close() : ÆÄÀÏ ÀÔ·Â ½ºÆ®¸²À» ´Ý°í ½ºÆ®¸²°ú ¿¬°üµÈ ½Ã½ºÅÛ ÀÚ¿øÀ» ÇØÁ¦ÇÕ´Ï´Ù. protected void finalize() : ½ºÆ®¸²À» ´õ ÀÌ»ó ÂüÁ¶ÇÏÁö ¾ÊÀ» °æ¿ì ÆÄÀÏ ÀÔ·Â ½ºÆ®¸²ÀÇ close()¸Þ¼µå¸¦ ´Ý½À´Ï´Ù. public FileDescriptor getFD() : ½ºÆ®¸²°ú ¿¬°üµÈ ÆÄÀÏ ¼³¸íÀÚ¸¦ ¹ÝȯÇÕ´Ï´Ù. public void write(byte[] b) : b.length°³ÀÇ ¹ÙÀÌÆ®¸¦ ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿¿¡¼ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÕ´Ï´Ù. public void write(byte[] b, int off, int len) : len°³ÀÇ ¹ÙÀÌÆ®¸¦ ¿ÀÇÁ¼Â off¿¡¼ ½ÃÀÛÇÏ¿© ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿¿¡¼ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÕ´Ï´Ù. public void write(int b) : ÁöÁ¤µÈ ¹ÙÀÌÆ®¸¦ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²¿¡ ±â·ÏÇÕ´Ï´Ù. |
jabookÀúÀÚ¸íÇÔ |
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù2ºÎ ÀúÀÚ:ÃÖ¿µ°ü |