|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
java.lang.Objectjava.io.InputStream
java.io.ObjectInputStream
public class ObjectInputStream
»çÀü¿¡ ObjectOutputStream¸¦ »ç¿ëÇØ ÀÛ¼ºµÈ ¿ø½ÃÀû µ¥ÀÌÅÍ¿Í ¿ø½ÃÀû °´Ã¼¸¦ Á÷·ÄÈ º¹¿øÇÕ´Ï´Ù.
ObjectOutputStream¿Í ObjectInputStream´Â FileOutputStream ¶Ç´Â FileInputStream¿Í ÇÔ²² »ç¿ëÇϸé, ¾îÇø®ÄÉÀ̼ǿ¡ °´Ã¼ÀÇ ±×·¡ÇÁ¸¦ À§ÇÑ Áö¼ÓÀûÀÎ ½ºÅ丮Áö¸¦ Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù . ObjectInputStream´Â »çÀü¿¡ Á÷·ÄÈ µÈ °´Ã¼¸¦ ¹ÙÅÁÀ¸·Î µÇµ¹¸®±â À§Çؼ »ç¿ëÇÕ´Ï´Ù. ´Ù¸¥ »ç¿ë ¹æ¹ýÀ¸·Î¼´Â ¼ÒÄÏ ½ºÆ®¸²ÀÇ »ç¿ë¿¡ ÇÑ, È£½ºÆ® »çÀÌ¿¡¼ÀÇ °´Ã¼ÀÇ ¼ö¼ö³ª, ¸®¸ðÆ® Åë½Å ½Ã½ºÅÛ¿¡ ÀÖ¾î¼ÀÇ ¼Ó¼ºÀ̳ª ÆÄ¶ó¹ÌÅÍÀÇ Á¤·ÄÀ̳ª Á¤·Ä ÇØÁ¦°¡ ÀÖ½À´Ï´Ù.
ObjectInputStream´Â ½ºÆ®¸²·ÎºÎÅÍ ÀÛ¼ºµÈ °´Ã¼ ±×·¡ÇÁ¿¡ ÀÖ¾î¼ÀÇ ¸ðµç ÇüÅÂÀÇ °´Ã¼°¡ Java °¡»ó ¸Ó½Å¿¡ Á¸ÀçÇϴ Ŭ·¡½º¿¡ È®½ÇÈ÷ ¼º³É Çϵµ·Ï ÇÕ´Ï´Ù. Ŭ·¡½º´Â Ç¥ÁØÀÇ µµ±¸¸¦ »ç¿ëÇØ Çʿ信 µû¶ó¼ ·Îµå µË´Ï´Ù.
½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÏ ¼ö ÀÖ´Â °ÍÀº java.io.Serializable ÀÎÅÍÆäÀ̽º³ª java.io.Externalizable ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÏ´Â °´Ã¼¸¸ÀÔ´Ï´Ù.
°´Ã¼¸¦ ½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÌ·Á¸é readObject ¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù. Èñ¸ÁÀÇ ÇüŸ¦ ÃëµæÇÏ·Á¸é,
Java
¾ÈÀüÇÑ Ä³½ºÆ®¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Java ¿¡¼´Â ij¸¯ÅÍ ¶óÀΰú ¹è¿Àº °´Ã¼·Î Á÷·ÄÈÀÇ »çÀÌ´Â °´Ã¼·Î¼ ´Ù·ç¾îÁý´Ï´Ù. ±×°ÍµéÀ» ÀоîµéÀÌ·Á¸é,
Èñ¸ÁÀÇ ÇüÅ¿¡ ij½ºÆ® µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
±âº» µ¥ÀÌÅÍÇüÀ» ½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÌ·Á¸é, DataInput ÀûÀýÇÑ ¸Þ¼µå¸¦ »ç¿ëÇÕ´Ï´Ù.
°´Ã¼ÀÇ µðÆúÆ®ÀÇ Á÷·ÄÈ º¹¿ø µµ±¸´Â °¢ ÇʵåÀÇ ³»¿ëÀ» Ãâ·ÂÇØÁ³À» ¶§ »óÅ¿¡ µÇµ¹¸³´Ï´Ù. transient ¶Ç´Â static ¶ó°í ¼±¾ðµÈ Çʵå´Â Á÷·ÄÈ º¹¿ø 󸮿¡¼´Â ¹«½ÃµË´Ï´Ù. ´Ù¸¥ °´Ã¼¸¦ ÂüÁ¶Çϸé, ±×·¯ÇÑ °´Ã¼´Â Çʿ信 µû¶ó¼ ½ºÆ®¸²·ÎºÎÅÍ ÀÐÈü´Ï´Ù. °´Ã¼ÀÇ ±×·¡ÇÁ´Â ÂüÁ¶ °øÀ¯ µµ±¸¸¦ »ç¿ëÇØ ¿Ã¹Ù¸£°Ô º¹¿øµË´Ï´Ù. Á÷·ÄÈ º¹¿øÀ» ÇÒ ¶§´Â Ç×»ó »õ·Î¿î °´Ã¼¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾î °Å±â¿¡ µû¶ó ±âÁ¸ÀÇ °´Ã¼¿¡ÀÇ µ¡¾²±â°¡ ¹æÁöµË´Ï´Ù.
°´Ã¼ÀÇ read´Â »õ·Î¿î °´Ã¼ÀÇ »ý¼ºÀÚ ½ÇÇàÀ» ´à¾Æ ÀÖ½À´Ï´Ù. ¸Þ¸ð¸®¸¦ °´Ã¼¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾î Á¦·Î (NULL)¿¡ Ãʱâȵ˴ϴÙ. Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º¿¡ ´ëÇØ¼ Àμö ¾øÀ½ÀÇ »ý¼ºÀÚ°¡ ºÒ·Á °£µÚ Á÷·ÄÈ °¡´É Ŭ·¡½ºÀÇ Çʵ尡 java.lang.Object¿¡ °¡Àå °¡±î¿î Ŭ·¡½º·ÎºÎÅÍ ½ÃÀ۵Ǿî, °¡Àå °´Ã¼¿¡ °íÀ¯ÀÇ Å¬·¡½º¿¡¼ ³¡³ª´Â ½ºÆ®¸²·ÎºÎÅÍ º¹¿øµË´Ï´Ù.
¿¹¸¦ µé¾î
ObjectOutputStream
¿¹·Î Ãâ·ÂÇØÁø ½ºÆ®¸²·ÎºÎÅÍÀÇ read´Â ´ÙÀ½°ú °°ÀÌ ½Ç½ÃÇÕ´Ï´Ù.
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
int i = ois.readInt();
String today = (String) ois.readObject();
Date date = (Date) ois.readObject();
ois.close();
Ŭ·¡½º´Â ÀÎÅÍÆäÀ̽º java.io.Serializable ¶Ç´Â java.io.Externalizable¸¦ ±¸ÇöÇÏ´Â °Í¿¡ÀÇÇØ Ŭ·¡½º°¡ ¾î¶»°Ô Á÷·ÄÈ µÇ´ÂÁö¸¦ Á¦¾îÇÕ´Ï´Ù.
Serializable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â °Í¿¡ÀÇÇØ °´Ã¼ÀÇ Á÷·ÄȰ¡ °´Ã¼ »óÅ ÀüüÀÇ º¸Á¸°ú º¹¿øÀ» ½Ç½ÃÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µÇ¾î, ¶Ç Ŭ·¡½º°¡ ½ºÆ®¸²ÀÇ Ãâ·Â½Ã¿Í ½ºÆ®¸²ÀÇ read½ÃÀÇ »çÀÌ¿¡ Àü°³ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. °´Ã¼ÀÇ Á÷·ÄÈ´Â °´Ã¼°£ÀÇ ÂüÁ¶¸¦ ÀÚµ¿ÀûÀ¸·Î À̵¿ÇØ, °´Ã¼ ±×·¡ÇÁÀÇ Àüü¸¦ º¸Á¸ ¹× º¹¿øÇÕ´Ï´Ù.
Á÷·ÄÈ Ã³¸®¿Í Á÷·ÄÈ º¹¿ø ó¸® ¶§¿¡ Ưº°ÇÑ Á¶ÀÛÀ» ÇÊ¿ä·Î ÇÏ´Â Serializable Ŭ·¡½º´Â ´ÙÀ½ÀÇ ¸Þ¼µå¸¦ ±¸ÇöÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
private void writeObject(java.io.ObjectOutputStream stream)
throws IOException;
private void readObject(java.io.ObjectInputStream stream)
throws IOException, ClassNotFoundException;
private void readObjectNoData()
throws ObjectStreamException;
readObject ¸Þ¼µå´Â ´ëÀÀÇÏ´Â writeObject ¸Þ¼µå¿¡ ÀÇÇØ ½ºÆ®¸²¿¡ Ãâ·ÂÇØÁø µ¥ÀÌÅ͸¦ »ç¿ëÇϴ ƯÁ¤ÀÇ Å¬·¡½º¿¡ µµÂøÇØ, °´Ã¼ »óŸ¦ º¸Á¸ ¹× º¹¿øÇÒ Ã¥ÀÓÀ» °¡Áý´Ï´Ù. ÀÌ ¸Þ¼µå´Â ±× ½´ÆÛ Ŭ·¡½º³ª ¼ºê Ŭ·¡½º¿¡ ¼ÓÇÏ´Â »óÅ¿¡ °ü¿©ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. »óŸ¦ º¹¿øÇÏ·Á¸é, °³°³ÀÇ Çʵ忡 µµÂøÇØ ObjectInputStream ·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àбâ, °´Ã¼ÀÇ ÀûÀýÇÑ Çʵ忡ÀÇ ÇÒ´çÀ» ½Ç½ÃÇÕ´Ï´Ù. ±âº» µ¥ÀÌÅÍÇüÀÇ read´Â DataInput¿¡ ÀÇÇØ Áö¿øµË´Ï´Ù.
°´Ã¼ µ¥ÀÌÅ͸¦ ÀоîµéÀÌ·Á°í ÇÒ °æ¿ì¿¡ ±× À§°ªÀÌ ´ëÀÀÇÏ´Â writeObject ¸Þ¼µå¿¡ ÀÇÇØ Ãâ·ÂÇØÁø Ä¿½ºÅÒ µ¥ÀÌÅÍÀÇ °æ°è¸¦ ³Ñ°í ÀÖ´Â °æ¿ì´Â eof ÇʵåÀÇ °ªÀÌ true »óÅ·ΠOptionalDataException°¡ ¹ß»ý µË´Ï´Ù. °´Ã¼¸¦ Á÷·ÄÈÇØ ÀоîµéÀÌ·Á°í ÇÒ °æ¿ì¿¡ ±× À§°ªÀÌ ÇÒ´çÇÏ°í°¡ ³¡³ µ¥ÀÌÅÍÀÇ ¸¶Áö¸·À» ³Ñ°í ÀÖ´Â °æ¿ì´Â ½ºÆ®¸²ÀÇ °æ¿ì¿Í °°°Ô, µ¥ÀÌÅÍÀÇ ¸¶Áö¸·À» ³ªÅ¸³»´Â ¿¹¿Ü°¡ ¸®Åϵ˴ϴ٠. Áï, ¹ÙÀÌÆ® ´ÜÀ§ÀÇ read¿¡¼´Â ¹ÙÀÌÆ®°¡ ÀÐÇûÀ» ¶§¿¡ -1°¡ ¸®Åϵ˴ϴ٠. ¿ø½ÃÀû read¿¡¼´Â EOFException°¡ ¹ß»ý µË´Ï´Ù. ´ëÀÀÇÏ´Â writeObject ¸Þ¼µå°¡ ¾ø´Â °æ¿ì´Â µðÆúÆ®ÀÇ Á÷·ÄÈ µ¥ÀÌÅÍÀÇ ¸¶Áö¸·ÀÌ ÇÒ´çÇÏ°í°¡ ³¡³ µ¥ÀÌÅͰ¡ ³¡³ª°Ô µË´Ï´Ù.
¿ø½ÃÀû read¿Í °´Ã¼ read°¡ readExternal ¸Þ¼µå·ÎºÎÅÍ ºÒ·Á °¬À» °æ¿ì´Â ¾çÂÊ ¸ðµÎ ¶È°°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. ½ºÆ®¸²ÀÇ À§°ªÀÌ ´ëÀÀÇÏ´Â writeExternal ¸Þ¼µå¿¡ ÀÇÇØ Ãâ·ÂÇØÁø µ¥ÀÌÅÍÀÇ ¸¶Áö¸·¿¡ ÀÖ´Â °æ¿ì, °´Ã¼ read¿¡¼´Â eof°¡ true ·Î ¼³Á¤µÈ »óÅ·ΠOptionalDataException°¡ Throw µÇ¾î ¹ÙÀÌÆ® ´ÜÀ§ÀÇ read¿¡¼´Â -1 ÀÌ µ¹·ÁÁÖ°íÁ® ¿ø½ÃÀû read¿¡¼´Â EOFException°¡ ¹ß»ý µË´Ï´Ù. ´Ù¸¸, ³°Àº ObjectStreamConstants.PROTOCOL_VERSION_1 ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇØ Ãâ·ÂÇØÁø ½ºÆ®¸²¿¡¼´Â ÀÌ µ¿ÀÛÀº Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. writeExternal ¸Þ¼µå¿Í ´Þ¸®, µ¥ÀÌÅÍÀÇ ¸¶Áö¸·ÀÌ Ãâ·ÂÇØÁöÁö ¾Ê±â ¶§¹®¿¡
µ¥ÀÌÅÍÀÇ ¸¶Áö¸·À» °ËÃâÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
readObjectNoData ¸Þ¼µå´Â Á÷·ÄÈ º¹¿øµÇ´Â °´Ã¼ÀÇ ½´ÆÛ Ŭ·¡½º°¡ Á÷·ÄÈ ½ºÆ®¸²·Î ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ» ¶§¿¡ ƯÁ¤ÀÇ Å¬·¡½º¿¡ µµÂøÇØ ±× °´Ã¼ »óŸ¦ ÃʱâÈÇÕ´Ï´Ù. Á÷·ÄÈ º¹¿øµÇ´Â ÀνºÅϽºÀÇ Å¬·¡½º°¡ ¼ö½ÅÃø°ú ¼Û½ÅÃø¿¡¼ ´Ù¸¥ °æ¿ì³ª, ¼ö½ÅÃøÀÇ ÀνºÅϽº·Î È®ÀåµÇ°í Àִ Ŭ·¡½º°¡ ¼Û½ÅÃø¿¡¼ È®ÀåµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì¿¡ ÀÌ·¯ÇÑ »óȲÀÌ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¶Ç, Á÷·ÄÈ ½ºÆ®¸²ÀÌ °³ÂùµÇ°í ÀÖ´Â °æ¿ì¿¡µµ ¹ß»ýÇÕ´Ï´Ù. ¾ÇÀǰ¡ ÀÖ´Â ¶Ç´Â ºÒ¿ÏÀüÇÑ ¼Ò½º ½ºÆ®¸²·ÎºÎÅÍ Á÷·ÄÈ º¹¿øÇÑ °´Ã¼¸¦ ÀûÀýÈ÷ ÃʱâÈÇÒ ¶§´Â readObjectNoData¸¦ »ç¿ëÇÕ´Ï´Ù.
Á÷·ÄÈ´Â java.io.Serializable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê´Â °´Ã¼ÀÇ ÇʵåÀÇ read³ª, ±×·¯ÇÑ Çʵ忡ÀÇ °ªÀÇ ÇÒ´çÀº ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº °´Ã¼ÀÇ ¼ºê Ŭ·¡½º¸¦ Á÷·ÄÈ °¡´ÉÇÏ°Ô ÇÏ´Â °ÍÀº °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º´Â ±× Çʵ带 ÃʱâÈÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ, Àμö ¾øÀ½ÀÇ »ý¼ºÀÚ¸¦ °¡Áú Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º »óŸ¦ º¸Á¸ ¹× º¹¿øÇÏ´Â °ÍÀº ¼ºê Ŭ·¡½ºÀÇ Ã¥ÀÓÀÌ µË´Ï´Ù. ±× Ŭ·¡½ºÀÇ Çʵ尡 ¾×¼¼½º °¡´ÉÇÑ (public, package, ¶Ç´Â protected) °æ¿ì, ȤÀº »óÅÂÀÇ º¹¿ø¿¡ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â set ¸Þ¼µå³ª get ¸Þ¼µå°¡ ÀÖ´Â °æ¿ì°¡ ÀÚÁÖ ÀÖ½À´Ï´Ù.
°´Ã¼¸¦ Á÷·ÄÈ º¹¿øÇÏ´Â µ¿¾È¿¡ ¹ß»ýÇÑ ¸ðµç ¿¹¿Ü´Â ObjectInputStream¿¡ ijġ µÇ¾î read 󸮸¦ ÀÌ»óÁ¾·á(ABEND) ½Ãŵ´Ï´Ù.
Externalizable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸé, °´Ã¼ÀÇ Á÷·ÄÈ µÈ Çü½ÄÀÇ ³»¿ë ¹× Çü½ÄÀ» °´Ã¼ÃøÀÌ ¿ÏÀüÇÏ°Ô Á¦¾îÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. Externalizable ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼µåÀÎ writeExternal¿Í readExternal´Â °´Ã¼ »óŸ¦ º¸Á¸ ¹× º¹¿øÇϱâ À§Çؼ È£ÃâÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼µå´Â Ŭ·¡½º¿¡ ÀÇÇØ ±¸ÇöµÇ¾úÀ» °æ¿ì¿¡´Â ObjectOutput¿Í ObjectInput ¸ðµç ¸Þ¼µå¸¦ »ç¿ëÇØ, ÀڽŠ»óÅÂÀÇ Ãâ·Â ¹× read¸¦ ½Ç½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù . ¾î¶°ÇÑ ¹öÀüÀ̾ ó¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀº °´Ã¼ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.
enum Á¤¼ö´Â º¸Åë
ÀÇ Á÷·ÄÈ °¡´É °´Ã¼³ª ¿ÜºÎÈ °¡´É °´Ã¼¿Í´Â ´Ù¸¥ ¹æ¹ýÀ¸·Î Á÷·ÄÈ º¹¿øµË´Ï´Ù. enum Á¤¼öÀÇ Á÷·ÄÈ Çü½ÄÀº À̸§¸¸À¸·Î ±¸¼ºµË´Ï´Ù. Á¤¼öÀÇ Çʵ尪´Â Àü¼Û µÇÁö ¾Ê½À´Ï´Ù. enum Á¤¼ö¸¦ Á÷·ÄÈ º¹¿øÇÏ·Á¸é,
ObjectInputStream°¡ ½ºÆ®¸²·ÎºÎÅÍ Á¤¼öÀÇ À̸§À» ÀоîµéÀÔ´Ï´Ù. ´ÙÀ½¿¡
enum Á¤¼öÀÇ ±âÀúÇüÀ̶ó°í ¹ÞÀº Á¤¼ö¸íÀ» Àμö·Î¼ »ç¿ëÇØ, static ¸Þ¼µå Enum.valueOf(Class, String)¸¦ È£ÃâÇϸé Á÷·ÄÈ º¹¿øµÈ Á¤¼ö¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ Á÷·ÄÈ °¡´É °´Ã¼ ¶Ç´Â ¿ÜºÎÈ °¡´É °´Ã¼¿Í °°ÀÌ, enum Á¤¼öµµ, Á÷·ÄÈ ½ºÆ®¸²¿¡ ³ªÁß¿¡ ³ªÅ¸³ª´Â ¿ªÂüÁ¶ÀÇ Å¸°ÙÀ¸·Î¼ ±â´ÉÇÒ ¼ö ÀÖ½À´Ï´Ù. enum Á¤¼ö°¡ Á÷·ÄÈ º¹¿øµÇ´Â ¼ø¼´Â Ä¿½ºÅ͸¶ÀÌÁî ÇÒ ¼ö ¾ø½À´Ï´Ù. Áï, enum Çü¿¡ ÀÇÇØ Á¤ÀǵÈ, Ŭ·¡½º ƯÀ¯ÀÇ readObject, readObjectNoData ¹× readResolve ¸Þ¼µå´Â Á÷·ÄÈ º¹¿øµ¿¾ÈÀº ¹«½ÃµË´Ï´Ù. °°ÀÌ serialPersistentFields ¶Ç´Â serialVersionUID ÇÊµå ¼±¾ðµµ ¹«½ÃµË´Ï´Ù. ¸ðµç enum ÇüÀº serialVersionUID°¡ 0L¿¡ °íÁ¤µÇ°í ÀÖ½À´Ï´Ù.
DataInput,
ObjectOutputStream,
Serializable,
Object Serialization Specification, Section 3, Object Input Classes | Áßø(Nested) Ŭ·¡½º °³¿ä | |
|---|---|
static class |
ObjectInputStream.GetField
ÀÔ·Â ½ºÆ®¸²·ÎºÎÅÍ ÀÐÈù Áö¼Ó Çʵ忡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
| ÇÊµå °³¿ä |
|---|
| »ý¼ºÀÚ °³¿ä | |
|---|---|
protected |
ObjectInputStream ()
ObjectInputStream¸¦ ¿ÏÀüÇÏ°Ô À籸ÇöÇÏ´Â ¼ºê Ŭ·¡½º°¡ ObjectInputStream ÀÌ ±¸Çö¿¡ ÀÇÇØ »ç¿ëµÈÁö ¾ó¸¶ ¾ÈµÈ private µ¥ÀÌÅ͸¦ ÇÒ´çÇÒ Çʿ䰡 ¾ø°Ô ÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÕ´Ï´Ù. |
|
ObjectInputStream (InputStream in)
ÁöÁ¤µÈ InputStream ·ÎºÎÅÍ ÀоîµéÀÌ´Â ObjectInputStream¸¦ ÀÛ¼ºÇÕ´Ï´Ù. |
| ¸Þ¼µå °³¿ä | |
|---|---|
int |
available ()
ºí·Ï ÇÏÁö ¾Ê°í ÀоîµéÀÏ ¼ö ÀÖ´Â ¹ÙÀÌÆ®¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
void |
close ()
ÀÔ·Â ½ºÆ®¸²À» ´Ý½À´Ï´Ù. |
void |
defaultReadObject ()
ÇöÀçÀÇ Å¬·¡½ºÀÇ ºñ static ¹× ºñ transient Çʵ带, ÀÌ ½ºÆ®¸²·ÎºÎÅÍ ÀоîµéÀÔ´Ï´Ù. |
protected boolean |
enableResolveObject (boolean enable)
½ºÆ®¸²·ÎºÎÅÍ ÀÐÈù °´Ã¼°¡ ġȯµË´Ï´Ù. |
int |
read ()
µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
read (byte[] buf,
int off,
int len)
¹ÙÀÌÆ®ÀÇ ¹è¿¿¡ ÀоîµéÀÔ´Ï´Ù. |
boolean |
readBoolean ()
boolean¸¦ ÀоîµéÀÔ´Ï´Ù. |
byte |
readByte ()
8 ºñÆ®ÀÇ ¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
char |
readChar ()
16 ºñÆ®ÀÇ char¸¦ ÀоîµéÀÔ´Ï´Ù. |
protected ObjectStreamClass |
readClassDescriptor ()
Á÷·ÄÈ ½ºÆ®¸²·ÎºÎÅÍ Å¬·¡½º ±â¼úÀÚ¸¦ ÀоîµéÀÔ´Ï´Ù. |
double |
readDouble ()
64 ºñÆ®ÀÇ double¸¦ ÀоîµéÀÔ´Ï´Ù. |
ObjectInputStream.GetField |
readFields ()
½ºÆ®¸²·ÎºÎÅÍ Áö¼Ó Çʵ带 Àбâ, ±×°ÍµéÀ» À̸§À» ÁöÁ¤ÇØ ¾×¼¼½º ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
float |
readFloat ()
32 ºñÆ®ÀÇ float¸¦ ÀоîµéÀÔ´Ï´Ù. |
void |
readFully (byte[] buf)
¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
void |
readFully (byte[] buf,
int off,
int len)
¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
readInt ()
32 ºñÆ®ÀÇ int¸¦ ÀоîµéÀÔ´Ï´Ù. |
String |
readLine ()
ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¸Þ¼µå´Â ¹ÙÀÌÆ®¸¦ Á¤È®ÇÏ°Ô ¹®ÀÚ·Î º¯È¯ÇÏÁö ¾Ê½À´Ï´Ù. »ó¼¼ ¹× ´ëü ¸Þ¼µå¿¡ ´ëÇØ¼´Â DataInputStream¸¦ ÂüÁ¶ÇϽʽÿÀ. |
long |
readLong ()
64 ºñÆ®ÀÇ long¸¦ ÀоîµéÀÔ´Ï´Ù. |
Object |
readObject ()
ObjectInputStream ·ÎºÎÅÍ °´Ã¼¸¦ ÀоîµéÀÔ´Ï´Ù. |
protected Object |
readObjectOverride ()
Àμö ¾øÀ½ÀÇ protected »ý¼ºÀÚ¸¦ »ç¿ëÇØ ObjectOutputStream¸¦ ÀÛ¼ºÇÑ ObjectOutputStream ½Å·ÚÇÒ ¼ö ÀÖ´Â ¼ºê Ŭ·¡½º¿¡ ÀÇÇØ È£ÃâÇÕ´Ï´Ù. |
short |
readShort ()
16 ºñÆ®ÀÇ short¸¦ ÀоîµéÀÔ´Ï´Ù. |
protected void |
readStreamHeader ()
¼ºê Ŭ·¡½º°¡ ÀÚ½ÅÀÇ ½ºÆ®¸² Çì´õÀÇ read¿Í °ËÁõÀ» ½Ç½ÃÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. |
Object |
readUnshared ()
ObjectInputStream ·ÎºÎÅÍ ¡¸°øÀ¯µÇÁö ¾Ê´Â´Ù¡¹°´Ã¼¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
readUnsignedByte ()
ºÎÈ£ ¾øÀ½ 8 ºñÆ® ¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
readUnsignedShort ()
ºÎÈ£ ¾øÀ½ 16 ºñÆ®ÀÇ short¸¦ ÀоîµéÀÔ´Ï´Ù. |
String |
readUTF ()
¼öÁ¤ UTF-8 Çü½ÄÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ» ÀоîµéÀÔ´Ï´Ù. |
void |
registerValidation (ObjectInputValidation obj,
int prio)
°´Ã¼ ±×·¡ÇÁ°¡ µ¹·ÁÁÖ°íÁö±â Àü¿¡ °ËÁõµÇ¾î¾ß ÇÒ °´Ã¼¸¦ µî·ÏÇÕ´Ï´Ù. |
protected Class <? > |
resolveClass (ObjectStreamClass desc)
ÁöÁ¤µÈ ½ºÆ®¸² Ŭ·¡½ºÀÇ ±â¼ú¿¡ ´ëÀÀÇÏ´Â ·ÎÄà Ŭ·¡½º¸¦ ·ÎµåÇÕ´Ï´Ù. |
protected Object |
resolveObject (Object obj)
Á÷·ÄÈ º¹¿ø ½Ã¿¡ ObjectInputStream ½Å·ÚÇÒ ¼ö ÀÖ´Â ¼ºê Ŭ·¡½º°¡ ¾î´À °´Ã¼¸¦ ´Ù¸¥ °´Ã¼¿¡ ġȯÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
protected Class <? > |
resolveProxyClass (String [] interfaces)
ÇÁ·Ï½Ã Ŭ·¡½º ±â¼úÀÚ·Î ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ÇÁ·Ï½Ã Ŭ·¡½º¸¦ ¸®ÅÏÇÕ´Ï´Ù. |
int |
skipBytes (int len)
¹ÙÀÌÆ®¸¦ ½ºÅµ ÇÕ´Ï´Ù. |
| Ŭ·¡½º java.io. InputStream ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
|---|
mark,
markSupported,
read,
reset,
skip |
| Ŭ·¡½º java.lang. Object ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
|---|
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| ÀÎÅÍÆäÀ̽º java.io. ObjectInput ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
|---|
read,
skip |
| »ý¼ºÀÚ »ó¼¼ |
|---|
public ObjectInputStream(InputStream in)
throws IOException
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ObjectInputStream.readFields ¸Þ¼µå ¶Ç´Â ObjectInputStream.readUnshared ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â ¼ºê Ŭ·¡½ºÀÇ »ý¼ºÀÚ¿¡ ÀÇÇØ SerializablePermission("enableSubclassImplementation")°¡ Á÷Á¢ ¶Ç´Â °£Á¢¿¡ ºÒ·Á °¬À» ¶§¿¡ ÀÌ »ý¼ºÀÚ´Â ÀÌ Á¢±Ù ±ÇÇÑÀ» È®ÀÎÇÕ´Ï´Ù.
in - ÀÐÀ» ÀÔ·Â ½ºÆ®¸²
StreamCorruptedException - ½ºÆ®¸² Çì´õ°¡ ºÎÁ¤ÇÑ °æ¿ì
IOException - ½ºÆ®¸² Çì´õÀÇ readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
SecurityException - ½Å·ÚµÇ¾î ÀÖÁö ¾ÊÀº ¼ºê Ŭ·¡½º°¡ º¸¾È»ó Áß¿äÇÑ ¸Þ¼µå¸¦ ºÎÁ¤ÇÏ°Ô ¿À¹ö¶óÀ̵å(override) ÇßÀ» °æ¿ì
NullPointerException - in°¡ nullÀÎ °æ¿ìObjectInputStream(),
readFields(),
ObjectOutputStream.ObjectOutputStream(OutputStream)
protected ObjectInputStream()
throws IOException,
SecurityException
½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼µå´Â ¿ì¼± ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼µå¸¦ Á¢±Ù ±ÇÇÑ SerializablePermission("enableSubclassImplementation")·Î
È£ÃâÇØ, »ó¼Ó
À¯È¿ÇÏ°Ô ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ±× checkPermission ¸Þ¼µå°¡ »ó¼Ó
À¯È¿ÇÏ°Ô ÇÏ´Â °ÍÀ» °ÅºÎÇßÀ» °æ¿ì
IOException SecurityManager.checkPermission(java.security.Permission),
SerializablePermission | ¸Þ¼µåÀÇ »ó¼¼ |
|---|
public final Object readObject()
throws IOException,
ClassNotFoundException
·çÆ® °´Ã¼´Â ÂüÁ¶ÇÏ´Â Çʵå¿Í °´Ã¼ÀÇ ¸ðµç °ÍÀÌ º¹¿øµÇ¾úÀ» ¶§, ¿ÏÀüÇÏ°Ô º¹¿øµË´Ï´Ù. ÀÌ ½ÃÁ¡¿¡¼ ±×·¯ÇÑ µî·ÏµÈ ¿ì¼± ¼øÀ§¿¡ ±â¹ÝÇØ °´Ã¼ °ËÁõ ÄݹéÀÌ ½ÇÇàµË´Ï´Ù. ÀÌ ÄݹéÀº (Ưº°ÇÑ readObject ¸Þ¼µåÀÇ) °´Ã¼¿¡ÀÇÇØ ±×°ÍµéÀÌ °³º°ÀûÀ¸·Î º¹¿øµÉ ¶§ µî·ÏµË´Ï´Ù.
¿¹¿Ü´Â InputStream¿¡ °üÇÑ ¹®Á¦³ª, Á÷·ÄÈ º¹¿øÇØ¾ß ÇÏ´Â °ÍÀÌ ¾Æ´Ñ Ŭ·¡½º¿¡ µµÂøÇØ ¹ß»ý µË´Ï´Ù. ¸ðµç ¿¹¿Ü´Â InputStream¿¡ ÀÖ¾î Ä¡¸íÀûÀ̾î, InputStream¸¦ ºÒÈ®Á¤ »óÅ·ΠÇÕ´Ï´Ù. ½ºÆ®¸² »óŸ¦ ¹«½ÃÇÒ±î ȸº¹ ó¸®Çұ °áÁ¤ÇÏ´Â °ÍÀº È£ÃâÃøÀÔ´Ï´Ù.
ObjectInput ³»ÀÇ readObject ClassNotFoundException - Á÷·ÄÈ µÈ °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
InvalidClassException - Á÷·ÄÈ·Î »ç¿ëµÇ´Â Ŭ·¡½º¿¡ ÇϵîÀÇ ºÒÆíÀÌ ÀÖ¾úÀ» °æ¿ì
StreamCorruptedException - ½ºÆ®¸²ÀÇ Á¦¾î Á¤º¸¿¡ Àϰü¼ºÀÌ ¾ø´Â °æ¿ì
OptionalDataException - ¿ø½ÃÀû µ¥ÀÌÅͰ¡ °´Ã¼°¡ ¾Æ´Ï°í ½ºÆ®¸²¿¡ ¹ß°ßµÇ¾úÀ» °æ¿ì
IOException - ÀÔÃâ·Â¿¡ °ü·ÃÇÑ ¿¹¿ÜÀÇ ¾î¶² °ÍÀΰ¡°¡ ¹ß»ýÇßÀ» °æ¿ì
protected Object readObjectOverride()
throws IOException,
ClassNotFoundException
ClassNotFoundException - Á÷·ÄÈ µÈ °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
OptionalDataException - ¿ø½ÃÀû µ¥ÀÌÅͰ¡ °´Ã¼°¡ ¾Æ´Ï°í ½ºÆ®¸²¿¡ ¹ß°ßµÇ¾úÀ» °æ¿ì
IOException - ±âº»ÀÌ µÇ´Â ½ºÆ®¸²ÀÇ readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìObjectInputStream(),
readObject()
public Object readUnshared()
throws IOException,
ClassNotFoundException
´Ù¸¸, º¹¿øµÈ °´Ã¼°¡ enum Á¤¼ö ¶Ç´Â java.lang.Class ÀνºÅϽº°¡ ¾Æ´Ï°í, readResolve ¸Þ¼µå¸¦ Á¤ÀÇÇϰí ÀÖÁö ¾Ê´Â °æ¿ì, readUnshared ·ÎºÎÅÍ ¸®ÅÏµÈ °´Ã¼ ÂüÁ¶´Â Ç×»ó ÀÏÀÇÀÔ´Ï´Ù. ¹ÙÅÁÀ¸·Î µÇ´Â µ¥ÀÌÅÍ ½ºÆ®¸²ÀÌ Á¶À۵ǰí ÀÖ´Â °æ¿ì¿¡¼µµ, ±×°ÍÀ» ÀÛ¼ºÇÑ ObjectInputStream ·ÎºÎÅÍ °´Ã¼ ÂüÁ¶¸¦ ÀçÂ÷ ÃëµæÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ±ÔÄ¢Àº readUnshared ·ÎºÎÅÍ ¸®ÅÏµÈ º£À̽º ·¹º§ÀÇ °´Ã¼ÀÎ ¸¸Å Àû¿ëµÇ¾î ¸®ÅÏµÈ °´Ã¼ ±×·¡ÇÁ³»¿¡¼ ÂüÁ¶µÇ´Â ¼ºê °´Ã¼¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â ObjectInputStream ¼ºê Ŭ·¡½º´Â SerializablePermission("enableSubclassImplementation")¸¦ °¡Áö´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ® ³»¿¡¼¸¸ ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¢±Ù ±ÇÇÑÀ» °¡ÁöÁö ¾Ê´Â ½ÃÅ¥·¯Æ¼ ÄÁÅØ½ºÆ® À¸·Î ÀνºÅϽºÈÇÏ·Á°í Çϸé, SecurityException°¡ ¹ß»ý µË´Ï´Ù.
ClassNotFoundException - Á÷·ÄÈ º¹¿øÇÏ´Â °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
StreamCorruptedException - ½ºÆ®¸²ÀÇ Á¦¾î Á¤º¸¿¡ Àϰü¼ºÀÌ ¾ø´Â °æ¿ì
ObjectStreamException - Á÷·ÄÈ º¹¿øÇÏ´Â °´Ã¼°¡ À̹Ì
½ºÆ®¸²³»¿¡ ÀÖ¾úÀ» °æ¿ì
OptionalDataException - ½ºÆ®¸²³»ÀÇ ´ÙÀ½ÀÇ µ¥ÀÌÅͰ¡ ¿ø½ÃÀûÀÇ °æ¿ì
IOException - Á÷·ÄÈ º¹¿øÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public void defaultReadObject()
throws IOException,
ClassNotFoundException
ClassNotFoundException - Á÷·ÄÈ µÈ °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
NotActiveException - ½ºÆ®¸²ÀÌ ÇöÀç °´Ã¼¸¦ ÀоîµéÀÌÁö ¾ÊÀº °æ¿ì
public ObjectInputStream.GetField readFields()
throws IOException,
ClassNotFoundException
GetField °´Ã¼
ClassNotFoundException - Á÷·ÄÈ µÈ °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
NotActiveException - ½ºÆ®¸²ÀÌ ÇöÀç °´Ã¼¸¦ ÀоîµéÀÌÁö ¾ÊÀº °æ¿ì
public void registerValidation(ObjectInputValidation obj,
int prio)
throws NotActiveException,
InvalidObjectException
obj - °ËÁõÀÇ ÄݹéÀ» ¹Þ´Â °´Ã¼prio - ÄݹéÀÇ ¼ø¼¸¦ Á¦¾îÇÏ´Â °ª. 0 ÀÌ ÀûÀýÇÑ ±âº»°ªÀÌ´Ù. »¡¸® Äݹé ÇÏ´Â °æ¿ì´Â Å« ¹øÈ£¸¦, ³ªÁß¿¡ Äݹé ÇÏ´Â °æ¿ì´Â ÀÛÀº ¹øÈ£¸¦ »ç¿ëÇÑ´Ù. °°Àº ¿ì¼± ¼øÀ§³»¿¡¼´Â ÄݹéÀÇ Ã³¸®¿¡ Ưº°ÇÑ ¼ø¼´Â ¾ø´Ù
NotActiveException - ½ºÆ®¸²ÀÌ ÇöÀç °´Ã¼¸¦ ÀоîµéÀÌÁö ¾Ê±â ¶§¹®¿¡
ÄݹéÀ» µî·ÏÇÒ ¼ö ¾ø´Â °æ¿ì
InvalidObjectException - °ËÁõ °´Ã¼°¡ nullÀÎ °æ¿ì
protected Class <? > resolveClass(ObjectStreamClass desc)
throws IOException,
ClassNotFoundException
ObjectOutputStream
´ëÀÀÇÏ´Â ¸Þ¼µå´Â annotateClass ÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ½ºÆ®¸²ÀÇ ÀÏÀÇÀÇ Å¬·¡½º °¢°¢ ºÙ¾î 1ȸ
¸¸ È£ÃâÇÕ´Ï´Ù. ÀÌ ¸Þ¼µå´Â ´ëüÀÇ ·Îµå µµ±¸¸¦ »ç¿ëÇϱâ À§Çؼ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù
¸¸, Class °´Ã¼¸¦ µ¹·ÁÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. Ŭ·¡½º °´Ã¼°¡ µ¹·ÁÁÖ°íÁö¸é, ±× Ŭ·¡½ºÀÇ serialVersionUID °¡ Á÷·ÄÈ µÈ Ŭ·¡½ºÀÇ serialVersionUID ¶ó°í ºñ±³µË´Ï´Ù. ºÒÀϰªÀÌ ÀÖÀ¸¸é, Á÷·ÄÈ º¹¿ø¿¡ ºÒÆíÀÌ ¹ß»ýÇØ, ¿¹¿Ü°¡ È£ÃâµË´Ï´Ù.
µðÆúÆ®¿¡¼´Â Ŭ·¡½º¸íÀº, readObject¸¦ È£ÃâÇÑ Å¬·¡½º¿Í ´ëÀÀ ºÙ¿© ÇØ°áµË´Ï´Ù.
desc - ObjectStreamClass Ŭ·¡½ºÀÇ ÀνºÅϽº
desc¿¡ ´ëÀÀÇÏ´Â Class °´Ã¼
IOException - º¸Åë
ÀÇ ÀÔÃâ·Â °ü·ÃÀÇ ¿¹¿Ü°¡ ¹ß»ýÇßÀ» °æ¿ì
ClassNotFoundException - Á÷·ÄÈ µÈ °´Ã¼°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì
protected Class <? > resolveProxyClass(String [] interfaces)
throws IOException,
ClassNotFoundException
ÀÌ ¸Þ¼µå´Â ½ºÆ®¸²ÀÇ ÀÏÀÇÀÇ °¢ ÇÁ·Ï½Ã Ŭ·¡½º ±â¼úÀÚ¿¡ ´ëÇØ 1ȸ ¸¸ È£ÃâÇÕ´Ï´Ù.
ObjectOutputStream¿¡
¼ÀÇ ´ëÀÀÇÏ´Â ¸Þ¼µå´Â annotateProxyClass ÀÔ´Ï´Ù. ÀÌ ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÏ´Â ÁöÁ¤µÈ ¼ºê Ŭ·¡½º ObjectInputStream¿¡ ´ëÇØ¼
ObjectOutputStream
´ëÀÀÇÏ´Â ¼ºê Ŭ·¡½º¿¡ ÀÖ´Â annotateProxyClass ¸Þ¼µå´Â ÀÌ ¸Þ¼µå°¡ ÀоîµéÀÌ´Â ÀÓÀÇÀÇ µ¥ÀÌÅÍ ¶Ç´Â °´Ã¼¸¦ Ãâ·ÂÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
ObjectInputStream¿¡ ÀÖ´Â ÀÌ ¸Þ¼µåÀÇ µðÆúÆ® ±¸ÇöÀº, interfaces ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽ºÀÇ Class °´Ã¼ÀÇ ¸®½ºÆ®¿Í ÇÔ²² Proxy.getProxyClass
È£Ãâ °á°ú¸¦ ¸®ÅÏÇÕ´Ï´Ù. °¢ ÀÎÅÍÆäÀ̽º¸í i
Class °´Ã¼°¡ ¸®Åϵ˴ϴÙ
.
Class.forName(i, false, loader)
¿©±â¼ loader´Â
½ÇÇà ½ºÅñîÁöÀÇ ÃÖÃÊÀÇ nullÀÌ ¾Æ´Ñ Ŭ·¡½º, ¶Ç´Â nullÀÌ ¾Æ´Ñ Ŭ·¡½º ·Î´õ°¡ ½ºÅÃÃø (resolveClass ¸Þ¼µå°¡ »ç¿ëÇÏ´Â °°Àº Ŭ·¡½º ·Î´õÀÇ ¼±ÅÃ)¿¡ ¾ø´Â °æ¿ì´Â null ÀÔ´Ï´Ù. ÇØ°áµÈ ÀÎÅÍÆäÀ̽º°¡ public°¡ ¾Æ´Ñ °æ¿ì´Â °°Àº °ªÀÇ loader°¡ Proxy.getProxyClass¿¡
°Ô °Ç³×Áý´Ï´Ù. public°¡ ¾Æ´Ñ ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Â °æ¿ì´Â ±× Ŭ·¡½º ·Î´õ°¡ °Ç³×¹Þ½À´Ï´Ù (public°¡ ¾Æ´Ñ ÀÎÅÍÆäÀ̽ºÀÇ Å¬·¡½º ·Î´õ°¡ º¹¼ö °ËÃâµÇ¾úÀ» °æ¿ì´Â IllegalAccessError°¡ Throw µÈ´Ù). Proxy.getProxyClass°¡ IllegalArgumentExceptionÀ»
Throw Çϸé, resolveProxyClass´Â IllegalArgumentException¿Í
ÇÔ²² ClassNotFoundExceptionÀ»
Throw ÇÕ´Ï´Ù.
interfaces - ÇÁ·Ï½Ã Ŭ·¡½º ±â¼úÀÚ¿¡°Ô Á÷·ÄÈ º¹¿øµÈ ÀÎÅÍÆäÀ̽º¸íÀÇ ¸®½ºÆ®
IOException - ±âº»ÀÌ µÇ´Â InputStream¿¡ ¿¹¿Ü°¡ ¹ß»ýÇßÀ» °æ¿ì
ClassNotFoundException - ÇÁ·Ï½Ã Ŭ·¡½º ¶Ç´Â ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º°¡ ¾î´À °Íµµ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ìObjectOutputStream.annotateProxyClass(Class)
protected Object resolveObject(Object obj)
throws IOException
ÀÌ ¸Þ¼µå´Â °´Ã¼°¡ ÀÐÈùµÚ readObject ·ÎºÎÅÍ º¹±ÍÇϱâ Àü¿¡ È£ÃâÇÕ´Ï´Ù. µðÆúÆ®ÀÇ resolveObject ¸Þ¼µå´Â °°Àº °´Ã¼¸¸À» ¸®ÅÏÇÕ´Ï´Ù.
¼ºê Ŭ·¡½º´Â °´Ã¼¸¦ ġȯÇÒ ¶§, ġȯµÈ °´Ã¼¿Í ÂüÁ¶°¡ Æ÷ÇԵǴ °¢ Çʵå¿ÍÀÇ È£È¯¼ºÀ» º¸ÁõÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÇÊµå ¶Ç´Â ¹è¿ ¿ä¼ÒÀÇ ÇüÅÂÀÇ ¼ºê Ŭ·¡½º°¡ ¾Æ´Ñ ÇüÅÂÀÇ °´Ã¼´Â ¿¹¿Ü¸¦ ¹ß»ý½ÃŰ´Â °Í¿¡ ÀÇÇØ Á÷·Äȸ¦ Áß´ÜÇØ, ±× °á°ú °´Ã¼´Â Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
ÀÌ ¸Þ¼µå´Â °¢ °´Ã¼°¡ ÃÖÃÊ·Î °ËÃâµÇ¾úÀ» ¶§¿¡ 1ȸ ¸¸ È£ÃâÇÕ´Ï´Ù. ÀÌ°Í ÀÌÈÄ °ËÃâµÇ´Â ±× °´Ã¼¿¡ÀÇ ÂüÁ¶´Â »õ·Î¿î °´Ã¼¿¡ ¸®´ÙÀÌ·ºÆ® µË´Ï´Ù.
obj - ġȯµÇ´Â °´Ã¼
IOException - º¸Åë
ÀÇ ÀÔÃâ·Â °ü·ÃÀÇ ¿¹¿Ü°¡ ¹ß»ýÇßÀ» °æ¿ì
protected boolean enableResolveObject(boolean enable)
throws SecurityException
enable°¡ true ·Î ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼µå´Â ¿ì¼± ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀúÀÇ checkPermission ¸Þ¼µå¸¦ Á¢±Ù ±ÇÇÑ SerializablePermission("enableSubstitution")·Î
È£ÃâÇØ, ½ºÆ®¸²·ÎºÎÅÍ ÀÐÈù °´Ã¼ÀÇ Ä¡È¯À» ½ºÆ®¸²À» Çã°¡ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
enable - Á÷·ÄÈ º¹¿øµÇ´Â °¢ °´Ã¼¿¡ ´ëÇØ resolveObject
»ç¿ëÀ» À¯È¿ÇÏ°Ô ÇÏ´Â °æ¿ì´Â true
SecurityException - ½ÃÅ¥·¯Æ¼ ¸Å´ÏÀú°¡ Á¸ÀçÇØ, ±× checkPermission ¸Þ¼µå°¡ ½ºÆ®¸²·ÎºÎÅÍ ÀÐÈù °´Ã¼ÀÇ Ä¡È¯À» ½ºÆ®¸²À» Çã°¡ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ» °ÅºÎÇÏ´Â °æ¿ìSecurityManager.checkPermission(java.security.Permission),
SerializablePermission
protected void readStreamHeader()
throws IOException,
StreamCorruptedException
IOException - ±âº»ÀÌ µÇ´Â InputStream
readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
StreamCorruptedException - ½ºÆ®¸²ÀÇ Á¦¾î Á¤º¸¿¡ Àϰü¼ºÀÌ ¾ø´Â °æ¿ì
protected ObjectStreamClass readClassDescriptor()
throws IOException,
ClassNotFoundException
writeClassDescriptor ¸Þ¼µå¸¦ ¿À¹ö¶óÀ̵å(override) ÇÑ ObjectOutputStream
¼ºê Ŭ·¡½º¿¡
ÇØ) Ãâ·ÂÇØÁø Ŭ·¡½º ±â¼úÀÚ¿¡°Ô ÀоîµéÀÔ´Ï´Ù. µðÆúÆ®¿¡¼´Â ÀÌ ¸Þ¼µå´Â Ŭ·¡½º ±â¼úÀÚ¸¦ °´Ã¼ Á÷·ÄÈ »ç¾ç¿¡ Á¤ÀÇµÈ Çü½Ä¿¡¼ ÀоîµéÀÔ´Ï´Ù.
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
ClassNotFoundException - Ŭ·¡½º ±â¼úÀÚ Ç¥Çö¿¡ »ç¿ëÇÑ Á÷·ÄÈ µÈ °´Ã¼ÀÇ Å¬·¡½º°¡ ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ìObjectOutputStream.writeClassDescriptor(java.io.ObjectStreamClass)
public int read()
throws IOException
ObjectInput ³»ÀÇ read InputStream ³»ÀÇ read IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public int read(byte[] buf,
int off,
int len)
throws IOException
ObjectInput ³»ÀÇ read InputStream ³»ÀÇ read buf - µ¥ÀÌÅÍÀÇ µ¶ÇØÃ³ÀÇ ¹öÆÛoff - µ¥ÀÌÅÍÀÇ °³½Ã ¿ÀÇÁ¼Â(offset)len - ÀÐÈ÷´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö
IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìDataInputStream.readFully(byte[], int, int)
public int available()
throws IOException
ObjectInput ³»ÀÇ available InputStream ³»ÀÇ available IOException - ±âº»ÀÌ µÇ´Â InputStream
readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public void close()
throws IOException
Closeable ³»ÀÇ close ObjectInput ³»ÀÇ close InputStream ³»ÀÇ close IOException - ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public boolean readBoolean()
throws IOException
DataInput ³»ÀÇ readBoolean EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public byte readByte()
throws IOException
DataInput ³»ÀÇ readByte EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public int readUnsignedByte()
throws IOException
DataInput ³»ÀÇ readUnsignedByte EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public char readChar()
throws IOException
DataInput ³»ÀÇ readChar EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public short readShort()
throws IOException
DataInput ³»ÀÇ readShort EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public int readUnsignedShort()
throws IOException
DataInput ³»ÀÇ readUnsignedShort EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public int readInt()
throws IOException
DataInput ³»ÀÇ readInt EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public long readLong()
throws IOException
DataInput ³»ÀÇ readLong EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public float readFloat()
throws IOException
DataInput ³»ÀÇ readFloat EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public double readDouble()
throws IOException
DataInput ³»ÀÇ readDouble EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public void readFully(byte[] buf)
throws IOException
DataInput ³»ÀÇ readFully buf - µ¥ÀÌÅÍÀÇ µ¶ÇØÃ³ÀÇ ¹öÆÛ
EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public void readFully(byte[] buf,
int off,
int len)
throws IOException
DataInput ³»ÀÇ readFully buf - µ¥ÀÌÅÍÀÇ µ¶ÇØÃ³ÀÇ ¹öÆÛoff - µ¥ÀÌÅÍÀÇ °³½Ã ¿ÀÇÁ¼Â(offset)len - ÀоîµéÀÌ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö
EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public int skipBytes(int len)
throws IOException
DataInput ³»ÀÇ skipBytes len - ½ºÅµ ÇÏ´Â ¹ÙÀÌÆ®¼ö
EOFException - ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException - ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
@Deprecated
public String readLine()
throws IOException
DataInput ³»ÀÇ readLine IOException - ±âº»ÀÌ µÇ´Â InputStream
readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
public String readUTF()
throws IOException
DataInput ³»ÀÇ readUTF IOException - ±âº»ÀÌ µÇ´Â InputStream
readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
UTFDataFormatException - ij¸¯ÅÍ ¶óÀÎÁßÀÇ read ¹ÙÀÌÆ®°¡ À¯È¿ÇÑ ¼öÁ¤ UTF-8 Çü½Ä¿¡¼ encode µÈ ij¸¯ÅÍ ¶óÀÎ À̿ܿ¡¼ ¸¸³µÀ» °æ¿ì
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
| ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
| °³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.