|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.nio.Buffer
ƯÁ¤ÀÇ ¿ø½ÃÀûÇü µ¥ÀÌÅÍÀÇ ÄÁÅ×À̳ÊÀÔ´Ï´Ù.
¹öÆÛ´Â ƯÁ¤ÀÇ ¿ø½ÃÀûÇü ¿ä¼ÒÀÇ ¸®´Ï¾î·Î À¯ÇÑÀÇ ¼øÂ÷ ¼ø¼ÀÔ´Ï´Ù. ÄÁÅÙÃ÷ ¿Ü¿¡, ¿ë·®, ¸®¹ÔÆ®, À§Ä¡¶ó°í ÇÏ´Â Çʼö ÇÁ·ÎÆÛƼ°¡ ÀÖ½À´Ï´Ù.
¡¸¿ë·®¡¹Àº ±× ¹öÆÛ¿¡ Æ÷ÇԵǴ ¿ä¼Ò¼ö¿¡ ÀÇÇØ °áÁ¤µË´Ï´Ù. ¿ë·®ÀÇ °ªÀº °íÁ¤À¸·Î, ¹Ýµå½Ã Á¤ÀÇ °ªÀÌ µË´Ï´Ù.
¡¸¸®¹ÔÆ®¡¹´Â Àоîµé¿© ¶Ç´Â ±âÀÔÀ» ÇàÇØ¼´Â ¾È µÇ´Â ÃÖÃÊÀÇ ¿ä¼ÒÀÇ À妽ºÀÔ´Ï´Ù. ¿ë·® ÀÌÇÏÀÇ Á¤ÀÇ °ªÀÌ µË´Ï´Ù.
¡¸À§Ä¡¡¹´Â ´ÙÀ½¿¡ Àоîµé¿© ¶Ç´Â ±âÀÔÀ» ½Ç½ÃÇÏ´Â ¿ä¼ÒÀÇ À妽ºÀÔ´Ï´Ù. ¸®¹ÔÆ® ÀÌÇÏÀÇ Á¤ÀÇ °ªÀÌ µË´Ï´Ù.
ºñºÒÇüÀÇ ¿ø½ÃÀûÇü¿¡´Â ÀÌ Å¬·¡½ºÀÇ ¼ºê Ŭ·¡½º°¡ 1 °³¾¿ ÇÒ´çÇÒ ¼ö ÀÖ°í ÀÖ½À´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ ¼ºê Ŭ·¡½º´Â °¢°¢ ´ÙÀ½ÀÇ 2 °³ÀÇ Ä«Å×°í¸®¿¡ ÇØ´çÇÏ´Â ¡¸get¡¹ ¹× ¡¸put¡¹¸¦ Á¤ÀÇÇÕ´Ï´Ù.
¡¸»ó´ë¡¹Á¶ÀÛ. ÇöÀç À§Ä¡·ÎºÎÅÍ 1 °³ ÀÌ»óÀÇ ¿ä¼ÒÀÇ Àоîµé¿© ¶Ç´Â ±âÀÔÀ» ½Ç½ÃÇØ, Àü¼Û µÈ ¿ä¼ÒÀÇ ¼ö¸¸Å À§Ä¡¸¦ Áõ°¡ÇÕ´Ï´Ù. ¿ä±¸µÈ Àü¼Û·®ÀÌ ¸®¹ÔÆ®¸¦ ³Ñ´Â °æ¿ì, »ó´ë ¡¸get¡¹´Â
BufferUnderflowException
, »ó´ë ¡¸put¡¹´ÂBufferOverflowException
¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. ¾î´À ÂÊÀÇ °æ¿ìµµ, µ¥ÀÌÅÍ´Â ÀÏÀý Àü¼Û µÇÁö ¾Ê½À´Ï´Ù.¡¸Àý´ë¡¹Á¶ÀÛ. ¸í½ÃÀûÀÎ ¿ä¼Ò À妽º¸¦ »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡), À§Ä¡´Â º¯ÈÇÏÁö ¾Ê½À´Ï´Ù. À妽º Àμö°¡ ¸®¹ÔÆ®¸¦ ³Ñ´Â °æ¿ì, Àý´ë ¡¸get¡¹, Àý´ë ¡¸put¡¹¶ó°íµµ¿¡
IndexOutOfBoundsException
¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.
ÀûÀýÇÑ Ã¤³ÎÀÇ ÀÔÃâ·Â Á¶ÀÛÀ» ½Ç½ÃÇϸé, µ¥ÀÌÅÍÀÇ Àü¼Û (¹öÆÛ¿ÍÀÇ ÁÖ°í¹Þ¾Æ)Àº °¡´ÉÇÕ´Ï´Ù. ÀÌ Á¶ÀÛÀº Ç×»ó ÇöÀç À§Ä¡¿¡ ´ëÇØ¼ »ó´ëÀûÀ¸·Î ÇàÇØÁý´Ï´Ù.
¹öÆÛÀÇ ¡¸¸¶Å©¡¹´Â reset
¸Þ¼Òµå¸¦ ½ÇÇàÇßÀ» ¶§¿¡ µ¹¾Æ¿À´Â À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â À妽ºÀÔ´Ï´Ù. Á¤ÀǵǾî ÀÖÁö ¾ÊÀº °æ¿ìµµ ÀÖ½À´Ï´Ù¸¸, Á¤Àǵǰí ÀÖ´Â °æ¿ì´Â ¹Ýµå½Ã À§Ä¡ ÀÌÇÏÀÇ Á¤ÀÇ °ªÀÌ µË´Ï´Ù. À§Ä¡³ª ¸®¹ÔÆ®ÀÇ °ªÀÌ ¸¶Å©ÀÇ °ªº¸´Ù ÀÛÀº °æ¿ì, ¸¶Å©´Â ÆÄ±âµË´Ï´Ù. ¸¶Å©°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº »óÅ·Πreset
¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ),InvalidMarkException
°¡ ½½·Î¿ì µË´Ï´Ù.
´ÙÀ½ÀÇ ÀÎ º¯ÇüÀº ¸¶Å©, À§Ä¡, ¸®¹ÔÆ®, ¿ë·®ÀÇ °ªÀ» ³ªÅ¸³À´Ï´Ù.
0 <= mark <= position <= limit <= capacity
»õ·Ó°Ô ÀÛ¼ºµÈ ¹öÆÛÀÇ À§Ä¡´Â Ç×»ó 0, ¸¶Å©´Â ¹ÌÁ¤µµ¸®ÀÔ´Ï´Ù. ¸®¹ÔÆ®ÀÇ ÃʱâÄ¡´Â 0 Àΰ¡, ¹öÆÛÀÇ ±¸Ãà ¹æ¹ýÀ̳ª Á¾·ù¿¡ µû¶ó¼´Â ±× ÀÌ¿ÜÀÇ °ªÀÌ µË´Ï´Ù. ÀϹÝÀûÀ¸·Î, ¹öÆÛÀÇ Ãʱâ ÄÁÅÙÃ÷´Â ¹ÌÁ¤µµ¸®ÀÔ´Ï´Ù.
À§Ä¡, ¸®¹ÔÆ®, ¿ë·®ÀÇ °ª¿¡ ¾×¼¼½º ÇÏ´Â ¸Þ¼Òµå³ª, ¸¶Å©³ª ¸®¼ÂÆ®¸¦ ½Ç½ÃÇÏ´Â ¸Þ¼Òµå¿Í °°°Ô, ÀÌ Å¬·¡½ºµµ ¹öÆÛ¿¡ ´ëÇÑ ´ÙÀ½°ú °°Àº Á¶ÀÛÀ» Á¤ÀÇÇÕ´Ï´Ù.
clear()
´Â ½Å±Ô ä³Î read ¼øÂ÷ ¼ø¼ (»ó´ë ¡¸put¡¹)¸¦ À§Çؼ(¶§¹®¿¡) ¹öÆÛ¸¦ ÁغñÇÕ´Ï´Ù. ¸®¹ÔÆ®ÀÇ °ªÀ» ¿ë·®ÀÇ °ª¿¡ ¸ÂÃß¾î À§Ä¡ÀÇ °ªÀ» 0 À¸·Î ÇÕ´Ï´Ù.
flip()
´Â ½Å±Ô ä³Î ±âÀÔ ¼øÂ÷ ¼ø¼ (»ó´ë ¡¸get¡¹)¸¦ À§Çؼ(¶§¹®¿¡) ¹öÆÛ¸¦ ÁغñÇÕ´Ï´Ù. ¸®¹ÔÆ®ÀÇ °ªÀ» ÇöÀç À§Ä¡ÀÇ °ª¿¡ ¸ÂÃá µÚ, À§Ä¡ÀÇ °ªÀ» 0 À¸·Î ÇÕ´Ï´Ù.
rewind()
´Â ¹ú½á ¹öÆÛ ÀúÀåµÇ°í ÀÖ´Â µ¥ÀÌÅ͸¦ ÀçÂ÷ ÀоîµéÀÏ ¼ö ÀÖ°Ô, ¹öÆÛ¸¦ ÁغñÇÕ´Ï´Ù. ¸®¹ÔÆ®ÀÇ °ªÀº ±×´ë·Î, À§Ä¡ÀÇ °ªÀ» 0 À¸·Î ÇÕ´Ï´Ù.
¸ðµç ¹öÆÛ´Â Àоîµé¿© °¡´ÉÇÕ´Ï´Ù¸¸, ±âÀÔµµ °¡´ÉÇÏ´Ù¶ó°í´Â ÇÑÁ¤ÇÏÁö ¾Ê½À´Ï´Ù. °¢ ¹öÆÛ Ŭ·¡½ºÀÇ º¯ÀÌ ¸Þ¼Òµå´Â ¡¸»ý·« °¡´ÉÇÑ Á¶ÀÛ¡¹À¸·Î ÁöÁ¤µÇ°í ÀÖ¾î read Àü¿ë ¹öÆÛ»ó¿¡¼ ºÒ·Á °¡¸é(ÀÚ) ReadOnlyBufferException
¸¦ ½½·Î¿ì ÇÕ´Ï´Ù. read Àü¿ë ¹öÆÛÀÇ ÄÁÅÙÃ÷´Â º¯°æÇÒ ¼ö ¾ø½À´Ï´Ù. ±×·¯³ª, ¸¶Å©, À§Ä¡, ¸®¹ÔÆ®ÀÇ °ªÀº º¯°æ °¡´ÉÇÕ´Ï´Ù. ¹öÆÛ°¡ Àоîµé¿© Àü¿ëÀÏÁö ¾î¶³Áö´Â isReadOnly
¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.
¹öÆÛ´Â º¹¼öÀÇ º´·Ä thread¿¡ ÀÇÇÑ »ç¿ë¿¡ ´ëÇØ ¾ÈÀüÇÏÁö´Â ¾Ê½À´Ï´Ù. º¹¼öÀÇ thread·Î »ç¿ëÇÏ´Â °æ¿ì´Â ÀûÀýÇÑ µ¿±â 󸮿¡ ÀÇÇØ ¹öÆÛ¿¡ÀÇ ¾×¼¼½º¸¦ Á¦¾îÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
µ¹·ÁÁÖ¾î¾ß ÇÒ °ªÀ» °¡Áö°í ÀÖÁö ¾ÊÀº ÀÌ Å¬·¡½ºÀÇ ¸Þ¼Òµå´Â ÀÚ½ÅÀ» È£ÃâÇÏ´Â ¹öÆÛ¸¦ µ¹·ÁÁÖ±â À§Çؼ(¶§¹®¿¡) ÁöÁ¤µË´Ï´Ù. À̰ÍÀ» ÀÀ¿ëÇØ, ¸Þ¼Òµå È£ÃâÀ» ¿¬¼â½Ãų ¼ö°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº ¹®ÀåÀÌ ÀÖ´Ù°í ÇսôÙ.
À̰͵éÀº º¸´Ù ÄÄÆÑÆ®ÇÑ Çü½ÄÀÇ ÀÏÇàÀ¸·Î ¿Å°Ü³õÀ» ¼ö ÀÖ½À´Ï´Ù.b.flip(); b.position(23); b.limit(42);
b.flip(). position(23). limit(42);
¸Þ¼ÒµåÀÇ °³¿ä | |
int |
capacity ()
ÀÌ ¹öÆÛÀÇ ¿ë·®À» µ¹·ÁÁÝ´Ï´Ù. |
Buffer |
clear ()
ÀÌ ¹öÆÛ¸¦ Ŭ¸®¾î ÇÕ´Ï´Ù. |
Buffer |
flip ()
ÀÌ ¹öÆÛ¸¦ Çø³ (¹ÝÀü) ÇÕ´Ï´Ù. |
boolean |
hasRemaining ()
ÇöÀç À§Ä¡·ÎºÎÅÍ ¸®¹ÔÆ®±îÁö ¾î¶°ÇÑ ¿ä¼Ò°¡ Á¸ÀçÇÒÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù. |
abstract boolean |
isReadOnly ()
ÀÌ ¹öÆÛ°¡ Àоîµé¿© Àü¿ëÀÏÁö ¾î¶³Áö¸¦ ÆÇ´ÜÇÕ´Ï´Ù. |
int |
limit ()
ÀÌ ¹öÆÛÀÇ ¸®¹ÔÆ®¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Buffer |
limit (int newLimit)
ÀÌ ¹öÆÛÀÇ ¸®¹ÔÆ®¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
Buffer |
mark ()
ÀÌ ¹öÆÛÀÇ ÇöÀç À§Ä¡¿¡ ¸¶Å©¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
int |
position ()
ÀÌ ¹öÆÛÀÇ À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Buffer |
position (int newPosition)
ÀÌ ¹öÆÛÀÇ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
int |
remaining ()
ÇöÀç À§Ä¡·ÎºÎÅÍ ¸®¹ÔÆ®±îÁö Á¸ÀçÇÏ´Â ¿ä¼ÒÀÇ ¼ö¸¦ µ¹·ÁÁÝ´Ï´Ù. |
Buffer |
reset ()
¹öÆÛÀÇ À§Ä¡¸¦ ÀÌÀü¿¡ ¸¶Å© ÇÑ À§Ä¡¿¡ µÇµ¹¸³´Ï´Ù. |
Buffer |
rewind ()
ÀÌ ¹öÆÛ¸¦ µÇ°¨±â (µÇ°¨¾Æ) ÇÕ´Ï´Ù. |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
¸Þ¼ÒµåÀÇ »ó¼¼ |
public final int capacity()
public final int position()
public final Buffer position(int newPosition)
newPosition
- »õ·Î¿î À§Ä¡ÀÇ °ªÀº ÀÌ ¸®¹ÔÆ® ÀÌÇÏÀÇ Á¤ÀÇ °ªÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù
IllegalArgumentException
- newPosition ÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ìpublic final int limit()
public final Buffer limit(int newLimit)
newLimit
- »õ·Î¿î ¸®¹ÔƮġ´Â ÀÌ ¹öÆÛÀÇ ¿ë·® ÀÌÇÏÀÇ Á¤ÀÇ °ªÀÌ ¾Æ´Ï¸é ¾ÈµÈ´Ù
IllegalArgumentException
- newLimit ÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ìpublic final Buffer mark()
public final Buffer reset()
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØµµ, ¸¶Å©ÀÇ °ªÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù. ¸¶Å©°¡ ÆÄ±âµÇ´Â Àϵµ ¾ø½À´Ï´Ù.
InvalidMarkException
- ¸¶Å©°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ìpublic final Buffer clear()
ÀÌ ¸Þ¼Òµå´Â ¹öÆÛ¸¦ Á¡À¯ Çϴ ä³Î read Á¶ÀÛ (put)À» ½ÇÇàÇϱâ Àü¿¡ È£ÃâÇÕ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
buf.clear(); // Prepare buffer for reading in.read(buf); // Read data
ÀÌ ¸Þ¼Òµå´Â ¹öÆÛ³»ÀÇ µ¥ÀÌÅ͸¦ ½ÇÁ¦·Î ¼Ò°ÅÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ±×·¯³ª, ±×·¯ÇÑ »óȲÀ¸·Î »ç¿ëµÇ´Â °ÍÀÌ ¸¹±â ¶§¹®¿¡, Ŭ¸®¾î (clear)¶ó°í ¸í¸íÇØÁö°í ÀÖ½À´Ï´Ù.
public final Buffer flip()
ä³Î read Á¶ÀÛ (put)µÚ, ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØ ä³Î ±âÀÔ Á¶ÀÛ (»ó´ë ¡¸get¡¹)ÀÇ Áغñ¸¦ ½Ç½ÃÇÕ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
buf.put(magic); // Prepend header in.read(buf); // Read data into rest of buffer buf.flip(); // Flip buffer out.write(buf); // Write header + data to channel
¾î´À Àå¼Ò·ÎºÎÅÍ ´Ù¸¥ Àå¼Ò¿¡ µ¥ÀÌÅ͸¦ Àü¼Û ÇÒ ¶§, ÀÌ ¸Þ¼Òµå¸¦ compact
¸Þ¼Òµå¿Í Á¶ÇÕÇØ »ç¿ëÇÏ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
public final Buffer rewind()
ÀÌ ¸Þ¼Òµå´Â ¸®¹ÔÆ®¸¦ ¿Ã¹Ù¸£°Ô ¼³Á¤ÇÑ µÚ, ä³Î ±âÀÔ Á¶ÀÛ (get)Àü¿¡ È£ÃâÇÕ´Ï´Ù. ´ÙÀ½¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
out.write(buf); // Write remaining data buf.rewind(); // Rewind buffer buf.get(array); // Copy data into array
public final int remaining()
public final boolean hasRemaining()
public abstract boolean isReadOnly()
|
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.