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

 

9.3.7 DataInputStream, DataOutputStream

 

ByteInputStreamÀº byte´ÜÀ§ÀÇ ÀÔ·Â ±â´É¸¸À» Á¦°øÇØÁÖÁö¸¸, DataInputStreamÀº ÀÚ¹Ù¿¡¼­ Á¦°øÇÏ´Â boolean ,byte, char, short, int, long, float, double µî°ú °°Àº ÀÚ·áÀÇ ±âº»Çü(primitive type)À» Á÷Á¢ ÀÐ°í ¾µ ¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù. ¿©±â¼­ Á¦°øµÇ´Â ¸Þ¼­µå´Â ¾Õ¼­¹è¿î RandomAccessFile¿¡¼­ Á¦°øµÇ´Â ¸Þ¼­µå¿Í µ¿ÀÏÇÕ´Ï´Ù. ÀÌ Å¬·¡½º¿¡¼­´Â À¯´ÏÄÚµå ¹®ÀÚ¿­À» UTF-8(UCS Transformation Format 8)Çü½ÄÀ¸·Î Ç¥ÇöÇϸç ÁÖ·Î ºñÆ®¸Ê À̹ÌÁö ÆÄÀϰú °°Àº À̹ÌÁö ÆÄÀÏÀ» ÀÚ¹Ù¿¡¼­ ´Ù·ç·Á ÇÒ ¶§ ¸¹ÀÌ ¾²ÀÔ´Ï´Ù.

 

¢Ñ UTF-8

ASCII·Î ÅØ½ºÆ® ±â¹ÝÀÇ Åë½ÅÀ» ÇÒ ¶§ È¿À²ÀûÀÎ À¯´ÏÄÚµå ¹®ÀÚ ÀÎÄÚµùÀ» ¸»ÇÑ´Ù.

 

´ÙÀ½ ¿¹Á¦´Â DataInputStream°ú DataOutputStreamÀ» »ç¿ëÇÑ °£´ÜÇÑ ¿¹Á¦ÀÔ´Ï´Ù.

 

DataInputOutputStreamTest.java (DataInputStream, DataOutputStreamÀ» Å×½ºÆ®ÇÑ  ¿¹Á¦)

import java.io.*;

class DataInputOutputTest {

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

       char c = 'A';

       char c1 = 'X';

       String str = "jabook";

       String str1 = "java";

       String file = "DataInputOutputTest.txt";

       DataInputStream in = null;

     DataOutputStream out = null;

     FileOutputStream fout = new FileOutputStream(file);

     out = new DataOutputStream(fout);

       out.writeChar(c);

       out.writeUTF(str);

       out.close();

       FileInputStream fin = new FileInputStream(new File(file));

       in = new DataInputStream(fin);

       System.out.println("c:"+c+" c1:"+c1+" str:"+str+" str1:"+str1);

       c1 = in.readChar();

       str1 = in.readUTF();

       in.close();

       System.out.println("c:"+c+" c1:"+c1+" str:"+str+" str1:"+str1);

   }

}

C:\JavaExample\09>javac DataInputOutputTest.java

C:\JavaExample\09>java DataInputOutputTest

c:A c1:X str:jabook str1:java

c:A c1:A str:jabook str1:jabook

 

ÆÄÀÏÀ̸§ÀÌ ¡®DataInputOutputTest.txt¡¯ÀÎ ÆÄÀÏÀ» »ý¼ºÇÕ´Ï´Ù. À̶§ FileOutputStreamÀÌ »õ·Î¿î ÆÄÀÏ¿¡ ±â·ÏÇϱ⠶§¹®¿¡ °°Àº À̸§À» °®´Â ±âÁ¸ÀÇ ÆÄÀÏÀº »èÁ¦°¡ µË´Ï´Ù..

 

n        FileOutputStream fout = new FileOutputStream(file);

 

 FileOutputStream¿¡ ¿¬°áµÈ DataOutputStreamÀ» »ý¼ºÇÕ´Ï´Ù. ¸ðµç µ¥ÀÌÅÍ´Â ¹ÙÀÌÆ®·Î ³ª´²Á®¼­ ½ºÆ®¸²À¸·Î Àü¼ÛµË´Ï´Ù.

 

n        out = new DataOutputStream(fout);

 

 DataInputOutputTest.txt¡¯¿¡ ¡®A¡¯¿Í ¡®jabook¡¯À̶ó°í Ãâ·ÂÇÕ´Ï´Ù. Char, StringÇüÀÇ °ªÀ» DataOutputStreamÀ¸·Î Ãâ·ÂµË´Ï´Ù. writeUTF(str)´Â ¼öÁ¤µÈ À¯´ÏÄÚµåÀÇ UTF-8Çü½ÄÀ¸·Î ½ºÆ®¸µÀ» Ãâ·ÂÇØÁÝ´Ï´Ù. ±×¸®°í, close()¸Þ¼­µå´Â OutputStreamÀ» ´Ý¾ÆÁÝ´Ï´Ù.

 

n        out.writeChar(c);

n        out.writeUTF(str);

n        out.close();

 

 FileInputStream°´Ã¼ finÀ» »ý¼ºÇÏ¿© ÆÄÀÏÀ̸§ÀÌ ¡®DataInputOutputTest.txt¡¯ÀÎ ÆÄÀÏÀ» ºÒ·¯¿É´Ï´Ù. FileInputStreamÀº ÆÄÀÏ¿¡¼­ ¿¬¼ÓÀûÀ¸·Î µ¥ÀÌÅ͸¦ ÀÐÀ» ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù.

 

n        FileInputStream fin=new FileInputStream(new File(file));

 

 DataInputStream inÀº FileInputStreamÀ¸·ÎºÎÅÍ ¸ðµç µ¥ÀÌÅ͸¦ ÀоîµéÀÔ´Ï´Ù. ¡®A¡¯¿Í ¡¯jabook¡¯À» ÀÐ¾î µé¿´°ÚÁÒ.

 

n        in = new DataInputStream(fin);

 

 ¸ÕÀú º¯¼ö¿¡ ¾²±â Àü¿¡ °¢°¢ÀÇ °ªÀ» Ãâ·ÂÇß½À´Ï´Ù. ±× °á°ú´Â ¡®c:A c1:X str:jabook str1:java ¡® ÀÔ´Ï´Ù.

 

n        System.out.println("c:"+c+" c1:"+c1+" str:"+str+" str1:"+str1);

 

½ºÆ®¸²À¸·ÎºÎÅÍ char, String¿¡ ÇØ´çÇÏ´Â °ªÀ» Àо °¢°¢ c1, str1À¸·Î ¹Þ¾Ò½À´Ï´Ù.

 

n        c1 = in.readChar();

n        str1 = in.readUTF();

 

´Ù½Ã °ªÀ» Ãâ·ÂÇØº¸¸é ¡®c:A c1:A str:jabook str1:jabook¡¯·Î c1¤Ñ, str1¿¡¼­ Ãâ·ÂµË´Ï´Ù.

 

n        System.out.println("c:"+c+" c1:"+c1+" str:"+str+" str1:"+str1);

 

DataInputStream°ú DataOutputStreamÀº ¹ÙÀÌÆ®±â¹ÝÀÇ ½ºÆ®¸²À¸·ÎºÎÅÍ ¾î¶² µ¥ÀÌÅÍŸÀÔÀÌ´øÁö ´Ù ¾²°í ´Ù Àоî³À´Ï´Ù. UTFÇü½ÄÀ¸·Î ¾²ÀÎ ¸Þ¼­µå´Â °ø¿ë Ç¥ÁØÀ¸·Î ÀÚ¹Ù°¡ ¾Æ´Ñ ´Ù¸¥ ¾ð¾î·Î ¾²ÀÎ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­µµ À¯´ÏÄÚµå ½ºÆ®¸µÀ» ÀÐ°í ¾µ ¼öÀÖ½À´Ï´Ù.

 

DataInputStream, DataOutputStream »ý¼ºÀÚ¸Þ¼­µå

public DataInputStream(InputStream in) : InputStream¿¡ ´ëÇÑ DataInputStream°´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.

public DataOutputStream(OutputStream out) : OutputStream¿¡ ´ëÇÑ DataOutputStream °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.

 

DataInputStream, DataOutputStream ÁÖ¿ä ¸Þ¼­µå

public void flush() : µ¥ÀÌÅÍ ¹ÙÀÌÆ® Ãâ·Â ½ºÆ®¸²ÀÇ ³»¿ëÀ» flush ÇÕ´Ï´Ù.

public int size() : ÇöÀç Ãâ·ÂÇÑ ¹ÙÀÌÆ® ¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù.

public String readUTF() :UTF-8 Çü½ÄÀÇ ¹®ÀÚ¿­À» ÀнÀ´Ï´Ù.

public void writeUTF(String str) : UTF-8 Çü½ÄÀÇ ¹®ÀÚ¿­À» ¾¹´Ï´Ù.

public static String readUTF(DataInput in) : ÁÖ¾îÁø DataInput°´Ã¼¸¦ ÀÌ¿ë, UTF-8 Çü½ÄÀÇ ¹®ÀÚ¿­À» ÀнÀ´Ï´Ù.

public String readLine() : ÅØ½ºÆ® ÇÑ ÁÙÀ» ÀоîµéÀÌ°í °¢°¢ÀÇ byte¸¦ charÇü °ªÀ¸·Î º¯È¯ÇÕ´Ï´Ù.

public boolean readBoolean() : ÇÑ ¹ÙÀÌÆ®¸¦ Àоî 0À̸é false, 0ÀÌ ¾Æ´Ï¸é ture¸¦ ¹ÝȯÇÕ´Ï´Ù.

public void writeBoolean(boolean v) : ÁÖ¾îÁø boolean °ªÀ» »ç¿ëÇÕ´Ï´Ù.

 



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