|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.io.InputStream | +--java.io.ObjectInputStream
»çÀü¿¡ ObjectOutputStream ¸¦ »ç¿ëÇØ ÀÛ¼ºµÈ ¿ø½ÃÀû µ¥ÀÌÅÍ¿Í ¿ø½ÃÀû ¿ÀºêÁ§Æ®¸¦ Á÷·ÄÈ º¹¿øÇÕ´Ï´Ù.
ObjectOutputStream ¿Í ObjectInputStream ´Â FileOutputStream ¶Ç´Â FileInputStream ¿Í ÇÔ²² »ç¿ëÇϸé, ¾îÇø®ÄÉÀ̼ǿ¡, ¿ÀºêÁ§Æ®ÀÇ ±×·¡ÇÁ¸¦ À§ÇÑ Áö¼ÓÀûÀÎ ½ºÅ丮Áö¸¦ Á¦°øÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ObjectInputStream ´Â »çÀü¿¡ Á÷·ÄÈ µÈ ¿ÀºêÁ§Æ®¸¦ ¹ÙÅÁÀ¸·Î µÇµ¹¸®±â À§Çؼ(¶§¹®¿¡) »ç¿ëÇÕ´Ï´Ù. ´Ù¸¥ »ç¿ë ¹æ¹ýÀ¸·Î¼´Â ¼ÒÄÏ ½ºÆ®¸²ÀÇ »ç¿ë¿¡ ÀÇÇÑ, È£½ºÆ®°£¿¡¼ÀÇ ¿ÀºêÁ§Æ®ÀÇ ¼ö¼ö³ª, ¸®¸ðÆ® Åë½Å ½Ã½ºÅÛ¿¡ ÀÖ¾î¼ÀÇ ¼Ó¼ºÀ̳ª ÆÄ¶ó¹ÌÅÍÀÇ Á¤·ÄÀ̳ª Á¤·Ä ÇØÁ¦°¡ ÀÖ½À´Ï´Ù.
ObjectInputStream ´Â ½ºÆ®¸²À¸·ÎºÎÅÍ ÀÛ¼ºµÈ ¿ÀºêÁ§Æ® ±×·¡ÇÁ¿¡ ÀÖ¾î¼ÀÇ ¸ðµç ÇüÅÂÀÇ ¿ÀºêÁ§Æ®°¡, Java Virual Machine ¿¡ Á¸ÀçÇϴ Ŭ·¡½º¿¡ È®½ÇÈ÷ ¼º³É Çϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. Ŭ·¡½º´Â Ç¥ÁØÀÇ ±â±¸¸¦ »ç¿ëÇØ Çʿ信 µû¶ó¼ ·Îµå µË´Ï´Ù.
½ºÆ®¸²À¸·ÎºÎÅÍ ÀоîµéÀÏ ¼ö°¡ ÀÖ´Â °ÍÀº java.io.Serializable ÀÎÅÍÆäÀ̽º³ª java.io.Externalizable ÀÎÅÍÆäÀ̽º¸¦ ¼Æ÷Æ®ÇÏ´Â ¿ÀºêÁ§Æ®¸¸ÀÔ´Ï´Ù.
¿ÀºêÁ§Æ®¸¦ ½ºÆ®¸²À¸·ÎºÎÅÍ ÀоîµéÀÌ·Á¸é readObject
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. Èñ¸ÁÀÇ ÇüŸ¦ ÃëµæÇÏ·Á¸é , Java ÀÇ ¾ÈÀüÇÑ Ä³½ºÆ®¸¦ »ç¿ëÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. Java ¿¡¼´Â ij¸¯ÅÍ ¶óÀΰú ¹è¿Àº ¿ÀºêÁ§Æ®·Î, Á÷·ÄÈÀÇ »çÀÌ´Â ¿ÀºêÁ§Æ®·Î¼ ´Ù·ç¾îÁý´Ï´Ù. ±×°ÍµéÀ» ÀоîµéÀÌ·Á¸é , Èñ¸ÁÀÇ ÇüÅ¿¡ ij½ºÆ® µÇ°í ÀÖÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.
±âº» µ¥ÀÌÅÍÇüÀ» ½ºÆ®¸²À¸·ÎºÎÅÍ ÀоîµéÀÌ·Á¸é , DataInput ÀÇ ÀûÀýÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
¿ÀºêÁ§Æ®ÀÇ µðÆúÆ®ÀÇ Á÷·ÄÈ º¹¿ø ±â±¸´Â °¢ ÇʵåÀÇ ³»¿ëÀ», ±âÀÔÇØÁ³À» ¶§ »óÅ¿¡ µÇµ¹¸³´Ï´Ù. transient ¶Ç´Â static ¶ó°í ¼±¾ðµÈ Çʵå´Â Á÷·ÄÈ º¹¿ø 󸮿¡¼´Â ¹«½ÃµË´Ï´Ù. ´Ù¸¥ ¿ÀºêÁ§Æ®¸¦ ÂüÁ¶Çϸé(ÀÚ), ±×·¯ÇÑ ¿ÀºêÁ§Æ®´Â Çʿ信 µû¶ó¼ ½ºÆ®¸²À¸·ÎºÎÅÍ ÀÐÈü´Ï´Ù. ¿ÀºêÁ§Æ®ÀÇ ±×·¡ÇÁ´Â ÂüÁ¶ °øÀ¯ ±â±¸¸¦ »ç¿ëÇØ ¿Ã¹Ù¸£°Ô º¹¿øµË´Ï´Ù. Á÷·ÄÈ º¹¿øÀ» ÇÒ ¶§´Â Ç×»ó »õ·Î¿î ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾î °Å±â¿¡ µû¶ó ±âÁ¸ÀÇ ¿ÀºêÁ§Æ®¿¡ÀÇ µ¡¾²±â°¡ ¹æÁöµË´Ï´Ù.
¿ÀºêÁ§Æ®ÀÇ read´Â »õ·Î¿î ¿ÀºêÁ§Æ®ÀÇ constructor ÀÇ ½ÇÇàÀ» ´à¾Æ ÀÖ½À´Ï´Ù. ¸Þ¸ð¸®¸¦ ¿ÀºêÁ§Æ®¿¡ ÇÒ´çÇÒ ¼ö ÀÖ¾î Á¦·Î (NULL)¿¡ Ãʱâȵ˴ϴÙ. Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º¿¡ ´ëÇØ¼, Àμö ¾øÀ½ÀÇ constructor ÀÌ ºÒ·Á °£ µÚ, Á÷·ÄÈ °¡´É Ŭ·¡½ºÀÇ Çʵ尡, java.lang.Object ¿¡ °¡Àå °¡±î¿î Ŭ·¡½º·ÎºÎÅÍ ½ÃÀÛµÇ¾î °¡Àå ¿ÀºêÁ§Æ®¿¡ °íÀ¯ÀÇ Å¬·¡½º¿¡¼ ³¡³ª´Â ½ºÆ®¸²À¸·ÎºÎÅÍ º¹¿øµË´Ï´Ù.
¿¹¸¦ µé¾î, ObjectOutputStream ÀÇ ¿¹·Î ±âÀÔÇØÁø ½ºÆ®¸²À¸·ÎºÎÅÍ ÀÇ read´Â ´ÙÀ½°ú °°ÀÌ ½Ç½ÃÇÕ´Ï´Ù.
FileInputStream istream = new FileInputStream("t.tmp"); ObjectInputStream p = new ObjectInputStream(istream); int i = p.readInt(); String today = (String) p.readObject(); Date date = (Date) p.readObject(); istream.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 °¡ ½½·Î¿ì µÇ¾î ¿ø½ÃÀû read¿¡¼´Â EOFException °¡ ½½·Î¿ì µË´Ï´Ù. ´Ù¸¸, ³°Àº ObjectStreamConstants.PROTOCOL_VERSION_1
ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇØ ±âÀÔÇØÁø ½ºÆ®¸²¿¡¼´Â ÀÌ µ¿ÀÛÀº Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. writeExternal ¸Þ¼Òµå¿Í ´Þ¸®, µ¥ÀÌÅÍÀÇ ¸¶Áö¸·ÀÌ ±âÀÔÇØÁöÁö ¾Ê±â ¶§¹®¿¡, µ¥ÀÌÅÍÀÇ ¸¶Áö¸·À» °ËÃâÇÒ ¼ö ¾ø±â ¶§¹®ÀÔ´Ï´Ù.
readObjectNoData ¸Þ¼Òµå´Â Á÷·ÄÈ º¹¿øµÇ´Â ¿ÀºêÁ§Æ®ÀÇ ½´ÆÛ Ŭ·¡½º°¡ Á÷·ÄÈ ½ºÆ®¸²À¸·Î ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ» ¶§¿¡, ƯÁ¤ÀÇ Å¬·¡½º¿¡ µµÂøÇØ ±× ¿ÀºêÁ§Æ® »óŸ¦ ÃʱâÈÇÕ´Ï´Ù. Á÷·ÄÈ º¹¿øµÇ´Â ÀνºÅϽºÀÇ Å¬·¡½º°¡ ¼ö½ÅÃø°ú ¼Û½ÅÃø¿¡¼ ´Ù¸¥ °æ¿ì³ª, ¼ö½ÅÃøÀÇ ÀνºÅϽº·Î È®ÀåµÇ°í Àִ Ŭ·¡½º°¡ ¼Û½ÅÃø¿¡¼ È®ÀåµÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì¿¡, ÀÌ·¯ÇÑ »óȲÀÌ ¹ß»ýÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¶Ç, Á÷·ÄÈ ½ºÆ®¸²ÀÌ °³ÂùµÇ°í ÀÖ´Â °æ¿ì¿¡µµ ¹ß»ýÇÕ´Ï´Ù. ¾ÇÀǰ¡ ÀÖ´Â ¶Ç´Â ºÒ¿ÏÀüÇÑ ¼Ò½º ½ºÆ®¸²À¸·ÎºÎÅÍ Á÷·ÄÈ º¹¿øÇÑ ¿ÀºêÁ§Æ®¸¦ ÀûÀýÈ÷ ÃʱâÈÇÒ ¶§´Â readObjectNoData ¸¦ »ç¿ëÇÕ´Ï´Ù.
Á÷·ÄÈ´Â java.io.Serializable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏÁö ¾Ê´Â ¿ÀºêÁ§Æ®ÀÇ ÇʵåÀÇ read³ª, ±×·¯ÇÑ Çʵ忡ÀÇ °ªÀÇ ÇÒ´çÀº ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº ¿ÀºêÁ§Æ®ÀÇ ¼ºê Ŭ·¡½º¸¦ Á÷·ÄÈ °¡´ÉÇÏ°Ô ÇÏ´Â °ÍÀº °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì, Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º´Â ±× Çʵ带 ÃʱâÈÇÒ ¼ö ÀÖ°Ô Çϱâ À§ÇÑ(ÇØ), Àμö ¾øÀ½ÀÇ constructor¸¦ °¡Áú Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, Á÷·ÄÈ °¡´ÉÇÏÁö ¾ÊÀº Ŭ·¡½º »óŸ¦ º¸Á¸ ¹× º¹¿øÇÏ´Â °ÍÀº ¼ºê Ŭ·¡½ºÀÇ Ã¥ÀÓÀÌ µË´Ï´Ù. ±× Ŭ·¡½ºÀÇ Çʵ尡 ¾×¼¼½º °¡´ÉÇÑ (public, package, ¶Ç´Â protected) °æ¿ì, ȤÀº »óÅÂÀÇ º¹¿ø¿¡ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â set ¸Þ¼Òµå³ª get ¸Þ¼Òµå°¡ ÀÖ´Â °æ¿ì°¡ ÀÚÁÖ ÀÖ½À´Ï´Ù.
¿ÀºêÁ§Æ®¸¦ Á÷·ÄÈ º¹¿øÇÏ´Â µ¿¾È¿¡ ¹ß»ýÇÑ ¸ðµç ¿¹¿Ü´Â ObjectInputStream ¿¡ ijġ µÇ¾î read 󸮸¦ ÀÌ»óÁ¾·á(ABEND) ½Ãŵ´Ï´Ù.
Externalizable ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸé(ÀÚ), ¿ÀºêÁ§Æ®ÀÇ Á÷·ÄÈ µÈ Çü½ÄÀÇ ³»¿ë ¹× Çü½ÄÀ» ¿ÀºêÁ§Æ®ÃøÀÌ ¿ÏÀüÇÏ°Ô Á¦¾îÇÏ´Â °ÍÀÌ °¡´ÉÇÏ°Ô µË´Ï´Ù. Externalizable ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼ÒµåÀÎ writeExternal ¿Í readExternal ´Â ¿ÀºêÁ§Æ® »óŸ¦ º¸Á¸ ¹× º¹¿øÇϱâ À§Çؼ(¶§¹®¿¡) ºÒ·Á °©´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â Ŭ·¡½º¿¡ ÀÇÇØ ±¸ÇöµÇ¾úÀ» °æ¿ì¿¡´Â ObjectOutput ¿Í ObjectInput ÀÇ ¸ðµç ¸Þ¼Òµå¸¦ »ç¿ëÇØ, ÀڽŠ»óÅÂÀÇ ±âÀÔ ¹× read¸¦ ½Ç½ÃÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¾î¶°ÇÑ ¹öÁ¯À̾ ó¸®ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀº ¿ÀºêÁ§Æ®ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.
DataInput
,
ObjectOutputStream
,
Serializable
,
¡¸¿ÀºêÁ§Æ® Á÷·ÄÈ »ç¾çÀÇ Á¦ 3 Àå ¿ÀºêÁ§Æ® ÀԷ Ŭ·¡½º¡¹ ÁßøµÈ Ŭ·¡½ºÀÇ °³¿ä | |
static class |
ObjectInputStream.GetField
ÀÔ·Â ½ºÆ®¸²À¸·ÎºÎÅÍ ÀÐÈù Áö¼Ó Çʵ忡ÀÇ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. |
ÇʵåÀÇ °³¿ä |
ÀÎÅÍÆäÀ̽º java.io. ObjectStreamConstants ¿¡¼ »ó¼Ó¹ÞÀº Çʵå |
baseWireHandle , PROTOCOL_VERSION_1 , PROTOCOL_VERSION_2 , SC_BLOCK_DATA , SC_EXTERNALIZABLE , SC_SERIALIZABLE , SC_WRITE_METHOD , STREAM_MAGIC , STREAM_VERSION , SUBCLASS_IMPLEMENTATION_PERMISSION , SUBSTITUTION_PERMISSION , TC_ARRAY , TC_BASE , TC_BLOCKDATA , TC_BLOCKDATALONG , TC_CLASS , TC_CLASSDESC , TC_ENDBLOCKDATA , TC_EXCEPTION , TC_LONGSTRING , TC_MAX , TC_NULL , TC_OBJECT , TC_PROXYCLASSDESC , TC_REFERENCE , TC_RESET , TC_STRING |
»ý¼ºÀÚÀÇ °³¿ä | |
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 constructor¸¦ »ç¿ëÇØ ObjectOutputStream ¸¦ ÀÛ¼ºÇÑ ObjectOutputStream ÀÇ ½Å·ÚÇÒ ¼ö ÀÖ´Â ¼ºê Ŭ·¡½º¿¡ ÀÇÇØ ºÒ·Á °©´Ï´Ù. |
short |
readShort ()
16 ºñÆ®ÀÇ short ¸¦ ÀоîµéÀÔ´Ï´Ù. |
protected void |
readStreamHeader ()
¼ºê Ŭ·¡½º°¡ ÀÚ½ÅÀÇ ½ºÆ®¸² Çì´õÀÇ read¿Í °ËÁõÀ» ½Ç½ÃÇÒ ¼ö ÀÖ°Ô Çϱâ À§Çؼ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. |
Object |
readUnshared ()
ObjectInputStream ·ÎºÎÅÍ ¡¸°øÀ¯µÇÁö ¾Ê´Â´Ù¡¹¿ÀºêÁ§Æ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
readUnsignedByte ()
ºÎÈ£ ¾øÀ½ 8 ºñÆ® ¹ÙÀÌÆ®¸¦ ÀоîµéÀÔ´Ï´Ù. |
int |
readUnsignedShort ()
ºÎÈ£ ¾øÀ½ 16 ºñÆ®ÀÇ short ¸¦ ÀоîµéÀÔ´Ï´Ù. |
String |
readUTF ()
UTF Çü½ÄÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ» ÀоîµéÀÔ´Ï´Ù. |
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) ÇÏ´Â ¼ºê Ŭ·¡½ºÀÇ constructor ¿¡ ÀÇÇØ SerializablePermission("enableSubclassImplementation")°¡ Á÷Á¢ ¶Ç´Â °£Á¢¿¡ ºÒ·Á °¬À» ¶§¿¡, ÀÌ constructor Àº ÀÌ ¾×¼¼½º±ÇÀ» È®ÀÎÇÕ´Ï´Ù.
in
- read¿øÀÇ ÀÔ·Â ½ºÆ®¸²
StreamCorruptedException
- ½ºÆ®¸² Çì´õ°¡ ºÎÁ¤ÇÑ °æ¿ì
IOException
- ½ºÆ®¸² Çì´õÀÇ readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
SecurityException
- ½Å·ÚµÇ¾î ÀÖÁö ¾ÊÀº ¼ºê Ŭ·¡½º°¡, º¸¾È»ó Áß¿äÇÑ ¸Þ¼Òµå¸¦ ºÎÁ¤ÇÏ°Ô ¿À¹ö¶óÀ̵å(override) ÇßÀ» °æ¿ì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
´Ù¸¸, º¹¿øµÈ ¿ÀºêÁ§Æ®°¡ 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 ȸ¸¸ ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ´ëüÀÇ ·Îµå ±â±¸¸¦ »ç¿ëÇϱâ À§Çؼ ±¸ÇöÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù¸¸, Ŭ·¡½º ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. Ŭ·¡½º ¿ÀºêÁ§Æ®°¡ µ¹·ÁÁÖ¾îÁö¸é(ÀÚ), ±× Ŭ·¡½ºÀÇ serialVersionUID °¡, Á÷·ÄÈ µÈ Ŭ·¡½ºÀÇ serialVersionUID ¶ó°í ºñ±³µË´Ï´Ù. ºÒÀÏÄ¡°¡ ÀÖÀ¸¸é(ÀÚ), Á÷·ÄÈ º¹¿ø¿¡ ºÒÆíÀÌ ¹ß»ýÇØ, ¿¹¿Ü°¡ ºÒ·Á °©´Ï´Ù.
µðÆúÆ®¿¡¼´Â Ŭ·¡½º¸íÀº readObject ¸¦ È£ÃâÇÑ Å¬·¡½º¿Í ´ëÀÀ ºÙ¿© ÇØ°áµË´Ï´Ù.
desc
- ObjectStreamClass Ŭ·¡½ºÀÇ ÀνºÅϽº
v
¿¡ ´ëÀÀÇÏ´Â 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
°¡ ½½·Î¿ì µÈ´Ù). Proxy.getProxyClass
°¡ IllegalArgumentException
¸¦ ½½·Î¿ì Çϸé(ÀÚ),resolveProxyClass
´Â IllegalArgumentException
¿Í ÇÔ²² ClassNotFoundException
¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
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
- µ¥ÀÌÅÍÀÇ readóÀÇ ¹öÆÛ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
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
- µ¥ÀÌÅÍÀÇ readóÀÇ ¹öÆÛ
EOFException
- ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException
- ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic void readFully(byte[] buf, int off, int len) throws IOException
DataInput
³»ÀÇ readFully
buf
- µ¥ÀÌÅÍÀÇ readóÀÇ ¹öÆÛoff
- µ¥ÀÌÅÍÀÇ °³½Ã ¿ÀÇÁ¼Â(offset)len
- ÀоîµéÀÌ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö
EOFException
- ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException
- ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic int skipBytes(int len) throws IOException
DataInput
³»ÀÇ skipBytes
len
- ½ºÅµ ÇÏ´Â ¹ÙÀÌÆ®¼ö
EOFException
- ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ À̸£·¶À» °æ¿ì
IOException
- ´Ù¸¥ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic String readLine() throws IOException
DataInput
³»ÀÇ readLine
IOException
- ±âº»ÀÌ µÇ´Â InputStream
ÀÇ readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic String readUTF() throws IOException
DataInput
³»ÀÇ readUTF
IOException
- ±âº»ÀÌ µÇ´Â InputStream
ÀÇ readÁß¿¡ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
Java, Java 2 D, ¹× JDBC ´Â ¹Ì±¹ ¹× ±× ¿ÜÀÇ ³ª¶ó¿¡ ÀÖ¾î¼ÀÇ ¹Ì±¹ Sun Microsystems, Inc. ÀÇ »óÇ¥ ȤÀº µî·Ï»óÇ¥ÀÔ´Ï´Ù.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.