|
JavaTM 2 Platform Std. Ed. v1. 4.0 |
||||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||||
°³¿ä: »óÀÚ | Çʵå | constructor | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor | ¸Þ¼Òµå |
java.lang.Object | +--java.nio.channels.spi.AbstractInterruptibleChannel | +--java.nio.channels.FileChannel
ÆÄÀÏÀÇ Àоîµé¿©, ±âÀÔÇØ, ¸ÅÇÎ, Á¶ÀÛ¿ë ä³ÎÀÔ´Ï´Ù.
ÆÄÀÏ Ã¤³ÎÀº ÆÄÀϳ»¿¡,
¹×Á¶È¸
°¡´ÉÇÑ ÇöÀçÀÇ ¡¸À§Ä¡¡¹¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÆÄÀÏ ÀÚü¿¡´Â read/±âÀÔ°ú ÇöÀçÀǺ¯°æ
ÀÇ Á¶È¸°¡ °¡´ÉÇÑ °¡º¯ÀåÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â ÇöÀçÀÇ »çÀÌÁ ¿ôµµ´Â ¹ÙÀÌÆ®¼ö°¡ ±âÀÔÇØÁö¸é(ÀÚ) Ä¿Á®,»çÀÌÁî
¿¡ ÀÇÇØ ÀÛ¾ÆÁý´Ï´Ù. ÆÄÀÏ¿¡´Â ¾×¼¼½º Çã°¡, ÄÁÅÙÃ÷ ŸÀÔ, ÃÖÁ¾ °»½Å ½Ã°¢µîÀÇ ¡¸¸ÞŸµ¥ÀÌŸ¡¹µµ °ü·ÃÁöÀ» ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸ÞŸµ¥ÀÌŸ¾ÆÅ©¼¼½º¸¦ À§ÇÑ ¸Þ¼Òµå´Â Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù.
Àß¶ó¼ ¹ö¸²
ÀÌ Å¬·¡½º´Â ¹ÙÀÌÆ® ä³Î¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Á¶ÀÛ (Àоîµé¿©, ±âÀÔÇØ, Ŭ·Î¿ìÁî) ¿Ü¿¡, ´ÙÀ½°ú °°Àº ÆÄÀÏ °íÀ¯ÀÇ Á¶ÀÛÀ» Á¤ÀÇÇÕ´Ï´Ù.
¹ÙÀÌÆ®ÀÇ °Í
À̳ªread
´Â , ä³ÎÀÇ ÇöÀç À§Ä¡¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ÀÏ ¾øÀÌ, ÆÄÀϳ»ÀÇ Àý´ë À§Ä¡¿¡¼ ÇàÇØÁø´Ù±âÀÔ
ÆÄÀÏÀÇ area´Â ¸Þ¸ð¸®¿¡ Á÷Á¢
µÈ´Ù. ÆÄÀÏÀÇ »çÀÌÁî°¡ Å« °æ¿ì´Â Åë»óÀÇ read ¸Þ¼Òµå³ª write ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Íº¸´Ù, ÀÌ ¹æ¹ý ÂÊÀÌ È¿À²Àû¸ÅÇÎ
ÆÄÀÏÀÇ °»½ÅÀº ±âÁØÀÌ µÇ´Â ±â¾ïÀåÄ¡¿¡
µÈ´Ù. µû¶ó¼, ½Ã½ºÅÛÀÌ Å©·¡½¬ ÇØµµ µ¥ÀÌÅÍÀÇ ¼Õ½ÇÀº ȸÇǵȴٰÁ¦ ½á³»
¹ÙÀÌÆ®´Â ÆÄÀϷκÎÅÍ
Àü¼Û ÇÒ ¼ö ÀÖ´Ù. ¹Ý´ë·Î,±× ¿ÜÀÇ Ã¤³Î¿¡
Àü¼Û ÇÒ ¼öµµ ÀÖ´Ù. ¸¹Àº operating system¸¦ ÆÄÀÏ ½Ã½ºÅÛÀÇ Ä³½¬¿Í Á÷Á¢ Á¢¼ÓÇØ, µ¥ÀÌÅ͸¦ ¸Å¿ì ºü¸¥ ¼Óµµ·Î ¼Û¼ö½Å ÇÏ´Â °ÍÀ¸·Î½á, ÀÌ Àü¼ÛÀ» ÃÖÀûÈÇÒ ¼ö ÀÖ´Ù±× ¿ÜÀÇ Ã¤³Î·ÎºÎÅÍ
ÆÄÀÏÀÇ area´Â ±× ¿ÜÀÇ ÇÁ·Î±×·¥À¸·ÎºÎÅÍ ¾×¼¼½º ÇÒ ¼ö ¾ø°Ô
ÇÒ ¼ö ÀÖ´Ù¶ô
ÆÄÀÏ Ã¤³ÎÀº º¹¼öÀÇ º´Çà thread·Î ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. close
¸Þ¼Òµå´Â Channel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤ ´ë·Î ¾ðÁ¦¶óµµ È£ÃâÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ä³ÎÀÇ À§Ä¡¸¦ »ç¿ëÇÏ´Â Á¶ÀÛ, ¶Ç´Â ÆÄÀÏ »çÀÌÁ º¯°æÇÒ °¡´É¼ºÀÌ ÀÖ´Â Á¶ÀÛÀº 1 kr¾¿ ½ÇÇàÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù. ÀüÀÇ Á¶ÀÛÀÇ ÁøÇàÁß¿¡ °°Àº »õ·Î¿î Á¶ÀÛÀ» °³½ÃÇÏ·Á°í Çϸé(ÀÚ), ÃÖÃÊÀÇ Á¶ÀÛÀÌ ³¡³¯ ¶§±îÁö »õ·Î¿î Á¶ÀÛÀº ºí·Ï µË´Ï´Ù. ±× ¿ÜÀÇ Á¶ÀÛ, ƯÈ÷ ¸í½ÃÀûÀÎ À§Ä¡¸¦ »ç¿ëÇÏ´Â Á¶ÀÛÀº ÀüÀÇ Á¶ÀÛ°ú µ¿½Ã º´ÇàÀ¸·Î ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¿½Ã concurrent processing¸¦ ÇÒÁö ¾î¶³Áö´Â ±âÁØÀÌ µÇ´Â ±¸Çö¿¡ ÀÇÇØ Á¤ÇØÁö±â (À§ÇØ)¶§¹®¿¡, ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¿¡ ÀÇÇØ Á¦°øµÈ ÆÄÀÏÀÇ ºä´Â °°Àº ÇÁ·Î±×·¥³»ÀÇ ±× ¿ÜÀÇ ÀνºÅϽº¿¡ ÀÇÇØ Á¦°øµÈ °°Àº ÆÄÀÏÀÇ ºä¿Í ¸ð¼øµÇÁö ¾Ê´Â °ÍÀÌ ÇÁ·ÎÅØ¼ÇµÇ°í ÀÖ½À´Ï´Ù. ±×·¯³ª, ±âÁØÀÌ µÇ´Â operating systemÀÇ Ä³½¬ 󸮳ª, ³×Æ®¿öÅ© ÆÄÀÏ ½Ã½ºÅÛ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇÑ Áö¿¬ÀÌ ¿øÀÎÀ¸·Î, ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¿¡ ÀÇÇØ Á¦°øµÈ ºä¿Í µ¿½Ã¿¡ ½ÇÇàµÇ°í ÀÖ´Â ÇÁ·Î±×·¥À¸·Î ÀνĵǴ ±× ¿ÜÀÇ ºä°¡ ¸ð¼øµÉ °¡´É¼ºÀÌ ¾ø´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÀÌ ¹®Á¦´Â ÀÌ·¯ÇÑ ÇÁ·Î±×·¥À» ±â¼úÇϰí ÀÖ´Â ¾ð¾îÀÇ Â÷À̳ª, À̰͵éÀÌ µ¿ÀÏ ¸Ó½ÅÀ¸·Î ½ÇÇàµÇ°í ÀÖ´ÂÁö ¾î¶²Áö¿Í´Â °ü°è¾øÀÌ ¹ß»ýÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¸ð¼øÀº ½Ã½ºÅÛ¿¡ ÀÇÇØ »ý±â´Â °ÍÀ̱â (À§ÇØ)¶§¹®¿¡ ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
ÀÌ Å¬·¡½º´Â ±âÁ¸ÀÇ ÆÄÀÏÀ» ¿©´Â ¸Þ¼Òµå³ª »õ·Î¿î ÆÄÀÏÀ» ÀÛ¼ºÇÏ´Â ¸Þ¼Òµå´Â Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â Àå·¡ÀÇ ¸±¸®½º·Î Ãß°¡µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. À̹øÀÇ ¸±¸®½º·Î ÆÄÀÏ Ã¤³ÎÀ» ÃëµæÇÏ°í ½ÍÀº °æ¿ì´Â ±âÁ¸ÀÇ FileInputStream
,FileOutputStream
,RandomAccessFile
ÀÇ ¸î°³ÀÇ ¿ÀºêÁ§Æ®ÀÇ getChannel ¸Þ¼Òµå¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀ¸·Î, ±âÁØÀÌ µÇ´Â °°Àº ÆÄÀÏ¿¡ Á¢¼ÓµÈ ÆÄÀÏ Ã¤³ÎÀÌ µ¹·ÁÁÖ¾îÁý´Ï´Ù.
ÆÄÀÏ Ã¤³Î »óÅ´ ä³ÎÀ» µ¹·ÁÁØ getChannel ¸Þ¼Òµå¸¦ °¡Áö´Â ¿ÀºêÁ§Æ® »óÅÂ¿Í ¹ÐÁ¢ÇÑ °ü°è¿¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ä³ÎÀÇ À§Ä¡¸¦ ¸í½ÃÀûÀ¸·Î, ȤÀº ¹ÙÀÌÆ®ÀÇ read³ª ±âÀÔ¿¡ ÀÇÇØ º¯°æÇϸé(ÀÚ), ¹ß»ý¿øÀÇ ¿ÀºêÁ§Æ®ÀÇ ÆÄÀÏ À§Ä¡°¡ ¹Ù²ò´Ï´Ù (¿ªµµ ¸¶Âù°¡Áö). ÆÄÀÏ Ã¤³Î·ÎºÎÅÍ ÆÄÀÏÀÇ ±æÀ̸¦ º¯°æÇϸé(ÀÚ), ¹ß»ý¿ø¿ÀºêÁ§Æ®·ÎºÎÅÍ º¸¾ÒÀ» ¶§ÀÇ ±æÀ̰¡ ¹Ù²ò´Ï´Ù (¿ªµµ ¸¶Âù°¡Áö). ¹ÙÀÌÆ®ÀÇ ±âÀÔ¿¡ ÀÇÇØ ÆÄÀÏÀÇ ÄÁÅÙÃ÷¸¦ º¯°æÇϸé(ÀÚ), ¿øÀÇ ¿ÀºêÁ§Æ®·ÎºÎÅÍ º¸¾ÒÀ» ¶§ÀÇ ÄÁÅÙÃ÷°¡ ¹Ù²ò´Ï´Ù (¿ªµµ ¸¶Âù°¡Áö).
ÀÌ Å¬·¡½º´Â ´Ù¾çÇÑ Á¡À¸·Î½á, ¡¸read °¡´É¡¹, ¡¸±âÀÔ °¡´É¡¹¶Ç´Â ¡¸read¿Í ±âÀÔÀÌ °¡´É¡¹ÀÎ ÀνºÅϽº°¡ ÇÊ¿äÇÑ ÀÏÀ» Á¶°ÇÀ¸·Î¼ ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î,
FileInputStream
ÀνºÅϽºÀÇ getChannel
¸Þ¼Òµå·Î ÃëµæÇÑ Ã¤³ÎÀº Àоîµé¿© °¡´ÉÇÕ´Ï´Ù. FileOutputStream
ÀνºÅϽºÀÇ getChannel
¸Þ¼Òµå·Î ÃëµæÇÑ Ã¤³ÎÀº ±âÀÔÇØ °¡´ÉÇÕ´Ï´Ù. ±×¸®°í,RandomAccessFile
ÀνºÅϽºÀÇ getChannel
¸Þ¼Òµå·Î ÃëµæÇÑ Ã¤³ÎÀº ÀνºÅϽº°¡ ¸ðµå "r" ·Î ÀÛ¼ºµÇ°í ÀÖ´Â °æ¿ì´Â Àоîµé¿© °¡´É, ¸ðµå "rw" ·Î ÀÛ¼ºµÇ°í ÀÖ´Â °æ¿ì´Â read¿Í ±âÀÔÀÌ °¡´ÉÇÕ´Ï´Ù.
FileOutputStream(File, boolean)
constructor¸¦ È£ÃâÇØ 2 ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅÍ¿¡ true ¸¦ °Ç³×ÁÖ´Â °Í¿¡ ÀÇÇØ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²À» ÀÛ¼ºÇßÀ» °æ¿ì, ÀÌ ½ºÆ®¸²À¸·ÎºÎÅÍ ÃëµæÇÑ ±âÀÔ °¡´ÉÇÑ ÆÄÀÏ Ã¤³ÎÀº ¡¸Ãß°¡ ¸ðµå¡¹°¡ µË´Ï´Ù. ÀÌ ¸ðµå·Î °ü·ÃÇÑ ±âÀÔ Á¶ÀÛÀ» È£ÃâÇϸé(ÀÚ), ¿ì¼± À§Ä¡°¡ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ±× ÈÄ, ¿ä±¸µÈ µ¥ÀÌÅͰ¡ ±âÀÔÇØÁý´Ï´Ù. ÀÌ·¯ÇÑ À§Ä¡ÀÇ À̵¿°ú µ¥ÀÌÅÍÀÇ ±âÀÔÀº ºÒ°¡ºÐÀÎ ´ÜÀÏÀÇ Á¶ÀÛÀ¸·Î¼ ÇàÇØÁý´Ï´Ù. ÀÌ Á¶ÀÛÀº ½Ã½ºÅÛ¿¡ ÀÇÁ¸Çϰí ÀÖ±â (À§ÇØ)¶§¹®¿¡ ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
FileInputStream.getChannel()
,
FileOutputStream.getChannel()
,
RandomAccessFile.getChannel()
ÁßøµÈ Ŭ·¡½ºÀÇ °³¿ä | |
static class |
FileChannel.MapMode
ÆÄÀÏ ¸ÅÇιæ½ÄÀÇ ÇüÅ ÇÁ·ÎÅØ¼ÇµÈ ¿°ÅÀÔ´Ï´Ù. |
»ý¼ºÀÚÀÇ °³¿ä | |
protected |
FileChannel ()
ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈÇÕ´Ï´Ù. |
¸Þ¼ÒµåÀÇ °³¿ä | |
abstract void |
force (boolean metaData)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ °»½Å ³»¿ëÀº ±× ±â¾ïÀåÄ¡¿¡ °Á¦ÀûÀ¸·Î ±âÀÔÇØÁý´Ï´Ù. |
FileLock |
lock ()
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ»ó¿¡ ¹èŸ ¶ôÀ» ¼³Á¤ÇÕ´Ï´Ù. |
abstract FileLock |
lock (long position,
long size,
boolean shared)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÁöÁ¤µÈ area¸¦ Àá±Þ´Ï´Ù. |
abstract MappedByteBuffer |
map (FileChannel.MapMode mode,
long position,
long size)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ area¸¦ Á÷Á¢ ¸Þ¸ð¸®¿¡ ¸ÅÇÎ ÇÕ´Ï´Ù. |
abstract long |
position ()
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡¸¦ µ¹·ÁÁÝ´Ï´Ù. |
abstract FileChannel |
position (long newPosition)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù. |
abstract int |
read (ByteBuffer dst)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù. |
long |
read (ByteBuffer [] dsts)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù. |
abstract long |
read (ByteBuffer [] dsts,
int offset,
int length)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼ºê ¼øÂ÷ ¼ø¼¿¡ ÀоîµéÀÔ´Ï´Ù. |
abstract int |
read (ByteBuffer dst,
long position)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼¸¦, ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù. |
abstract long |
size ()
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ µ¹·ÁÁÝ´Ï´Ù. |
abstract long |
transferFrom (ReadableByteChannel src,
long position,
long count)
ÁöÁ¤µÈ read °¡´ÉÇÑ ¹ÙÀÌÆ® ä³Î·ÎºÎÅÍ ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ¿¡ ¹ÙÀÌÆ®¸¦ Àü¼Û ÇÕ´Ï´Ù. |
abstract long |
transferTo (long position,
long count,
WritableByteChannel target)
ÀÌ Ã¤³ÎÀÇ ÆÄÀϷκÎÅÍ ÁöÁ¤µÈ ±âÀÔ °¡´ÉÇÑ ¹ÙÀÌÆ® ä³Î¿¡ ¹ÙÀÌÆ®¸¦ Àü¼Û ÇÕ´Ï´Ù. |
abstract FileChannel |
truncate (long size)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ¸»¹Ì¸¦ Àß¶ó ¹ö·Á ÁöÁ¤µÈ »çÀÌÁî·Î ÇÕ´Ï´Ù. |
FileLock |
tryLock ()
ÀÌ Ã¤³ÎÀÇ ÆÄÀϻ󿡼 ¹èŸ ¶ôÀ» ȹµæÇÏ·Á°í ÇÕ´Ï´Ù. |
abstract FileLock |
tryLock (long position,
long size,
boolean shared)
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÁöÁ¤µÈ area·Î ¶ôÀ» ȹµæÇÏ·Á°í ÇÕ´Ï´Ù. |
abstract int |
write (ByteBuffer src)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù. |
long |
write (ByteBuffer [] srcs)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛ·ÎºÎÅÍ ½á³À´Ï´Ù. |
abstract long |
write (ByteBuffer [] srcs,
int offset,
int length)
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼°¡ ÁöÁ¤µÈ ¹öÆÛÀÇ ¼ºê ¼øÂ÷ ¼ø¼·ÎºÎÅÍ ½á³À´Ï´Ù. |
abstract int |
write (ByteBuffer src,
long position)
ÁöÁ¤µÈ ¹öÆÛÀÇ ¹ÙÀÌÆ® ¼øÂ÷ ¼ø¼¸¦ ÀÌ Ã¤³ÎÀÇ ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡¿¡ ±âÀÔÇÕ´Ï´Ù. |
Ŭ·¡½º java.nio.channels.spi. AbstractInterruptibleChannel ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
begin , close , end , implCloseChannel , isOpen |
Ŭ·¡½º java.lang. Object ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
ÀÎÅÍÆäÀ̽º java.nio.channels. Channel ¿¡¼ »ó¼Ó¹ÞÀº ¸Þ¼Òµå |
close , isOpen |
»ý¼ºÀÚÀÇ »ó¼¼ |
protected FileChannel()
¸Þ¼ÒµåÀÇ »ó¼¼ |
public abstract int read(ByteBuffer dst) throws IOException
¹ÙÀÌÆ®ÀÇ read´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. ±× ÈÄ, ½ÇÁ¦·Î ÀÐÈù ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ ÆÄÀÏ À§Ä¡°¡ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ReadableByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
ReadableByteChannel
³»ÀÇ read
dst
- ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long read(ByteBuffer [] dsts, int offset, int length) throws IOException
¹ÙÀÌÆ®ÀÇ read´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. ±× ÈÄ, ½ÇÁ¦·Î ÀÐÈù ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ ÆÄÀÏ À§Ä¡°¡ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ScatteringByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
ScatteringByteChannel
³»ÀÇ read
dsts
- ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛoffset
- ÃÖÃÊÀÇ ¹ÙÀÌÆ®ÀÇ Àü¼Ûó°¡ µÇ´Â ¹öÆÛ ¹è¿³»ÀÇ ¿ÀÇÁ¼Â(offset). dsts.length ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ölength
- ¾×¼¼½º °¡´ÉÇÑ ÃÖ´ë ¹öÆÛ¼ö. dsts.length - offset ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic final long read(ByteBuffer [] dsts) throws IOException
¹ÙÀÌÆ®ÀÇ read´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. ±× ÈÄ, ½ÇÁ¦·Î ÀÐÈù ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ ÆÄÀÏ À§Ä¡°¡ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ScatteringByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
ScatteringByteChannel
³»ÀÇ read
dsts
- ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract int write(ByteBuffer src) throws IOException
ä³ÎÀÌ Ãß°¡ ¸ðµåÀÎ °æ¿ì, ¹ÙÀÌÆ®ÀÇ ¼µÎ´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. Ãß°¡ ¸ðµå¿¡¼´Â ÃÖÃÊ·Î, À§Ä¡°¡ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î Ä¿Áý´Ï´Ù. ÆÄÀÏ À§Ä¡´Â ½ÇÁ¦·Î ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â WritableByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
WritableByteChannel
³»ÀÇ write
src
- ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛ
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long write(ByteBuffer [] srcs, int offset, int length) throws IOException
ä³ÎÀÌ Ãß°¡ ¸ðµåÀÎ °æ¿ì, ¹ÙÀÌÆ®ÀÇ ¼µÎ´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. Ãß°¡ ¸ðµå¿¡¼´Â ÃÖÃÊ·Î, À§Ä¡°¡ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î Ä¿Áý´Ï´Ù. ÆÄÀÏ À§Ä¡´Â ½ÇÁ¦·Î ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â GatheringByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
GatheringByteChannel
³»ÀÇ write
srcs
- ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛoffset
- ÃÖÃÊÀÇ ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³°¡ µÇ´Â ¹öÆÛ ¹è¿³»ÀÇ ¿ÀÇÁ¼Â(offset). srcs.length ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ölength
- ¾×¼¼½º °¡´ÉÇÑ ÃÖ´ë ¹öÆÛ¼ö. srcs.length - offset ÀÌÇÏÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic final long write(ByteBuffer [] srcs) throws IOException
ä³ÎÀÌ Ãß°¡ ¸ðµåÀÎ °æ¿ì, ¹ÙÀÌÆ®ÀÇ ¼µÎ´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. Ãß°¡ ¸ðµå¿¡¼´Â ÃÖÃÊ·Î, À§Ä¡°¡ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î Ä¿Áý´Ï´Ù. ÆÄÀÏ À§Ä¡´Â ½ÇÁ¦·Î ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â GatheringByteChannel
ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.
GatheringByteChannel
³»ÀÇ write
srcs
- ¹ÙÀÌÆ®ÀÇ ÃëµæÃ³ ¹öÆÛ
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long position() throws IOException
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract FileChannel position(long newPosition) throws IOException
À§Ä¡ÀÇ °ªÀ» ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °ªÀ¸·Î ¼³Á¤ÇÏ´Â °ÍÀº Á¤´çÇÑ Ã³¸®ÀÔ´Ï´Ù. ±×·¯³ª, ÀÌ Ã³¸®¿¡ ÀÇÇØ ÆÄÀÏÀÇ »çÀÌÁî°¡ º¯°æµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´Â À§Ä¡¿¡¼ ¹ÙÀÌÆ®¸¦ Àо·Á°í Çϸé(ÀÚ), Áï¼®¿¡¼ ÆÄÀÏÀÇ ¸¶Áö¸·ÀÌ ÅëÁöµË´Ï´Ù. °°Àº À§Ä¡¿¡¼ ¹ÙÀÌÆ®¸¦ ±âÀÔÇÏ·Á°í Çϸé(ÀÚ), »õ·Î¿î ¹ÙÀÌÆ®¿¡ ¸ÂÃß¾î ÆÄÀÏÀÇ »çÀÌÁî°¡ Ä¿Áý´Ï´Ù. ÀÌÀüÀÇ ÆÄÀÏÀÇ ¸¶Áö¸·À¸·ÎºÎÅÍ »õ·Ó°Ô ±âÀÔÇØÁø ¹ÙÀÌÆ®±îÁöÀÇ »çÀÌ¿¡ Á¸ÀçÇÏ´Â ¹ÙÀÌÆ®ÀÇ °ªÀº ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
newPosition
- »õ·Î¿î À§Ä¡. ÆÄÀÏÀÇ ¼±µÎ·ÎºÎÅÍÀÇ ¹ÙÀÌÆ®¼ö¸¦ ³ªÅ¸³»´Â ºÎ°¡ ¾Æ´Ñ Á¤¼ö
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
IllegalArgumentException
- »õ·Î¿î À§Ä¡°¡ ºÎÀÇ °ªÀÇ °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long size() throws IOException
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract FileChannel truncate(long size) throws IOException
ÁöÁ¤µÈ »çÀÌÁî°¡ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁ´Ù ÀÛÀº °æ¿ì, ÆÄÀÏÀÇ ¸»¹Ì¸¦ Àß¶ó ¹ö¸± ¼ö ÀÖ¾î »õ·Î¿î ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ µé¾î°¡Áö ¾Ê´Â ¹ÙÀÌÆ®°¡ ÆÄ±âµË´Ï´Ù. ÁöÁ¤µÈ »çÀÌÁî°¡ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁî¿Í °°Àº°¡, ±×°Íº¸´Ù Å« °æ¿ì, ÆÄÀÏ »çÀÌÁî´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù. ¾î´À ÂÊÀÇ °æ¿ìµµ, ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡°¡ ÁöÁ¤µÈ »çÀÌÁ´Ù Å« °æ¿ì, ±× »çÀÌÁî¿¡ ¸ÂÃß¾î ÆÄÀÏ »çÀÌÁî°¡ º¯°æµË´Ï´Ù.
NonWritableChannelException
- ÀÌ Ã¤³ÎÀÌ ±âÀÔÇØ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
IllegalArgumentException
- »õ·Î¿î »çÀÌÁî°¡ ºÎÀÇ °ªÀÇ °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract void force(boolean metaData) throws IOException
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÌ ·ÎÄÃÀÇ ±â¾ïÀåÄ¡»ó¿¡ ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼ÒµåÀÇ ¹Ýȯ°ªÀ¸·ÎºÎÅÍ, ÀÌ Ã¤³ÎÀÇ ÀÛ¼º½Ã ¶Ç´Â ÀÌ ¸Þ¼ÒµåÀÇ Á¦ÀÏ ÃÖ±ÙÀÇ È£ÃâÇØ ÀÌÈÄÀÇ ÆÄÀÏÀÇ º¯°æ ³»¿ëÀÌ ¸ðµÎ ±× µð¹ÙÀ̽º¿¡ ±âÀÔÇØÁö°í ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ý¿¡ ÀÇÇØ, ½Ã½ºÅÛÀÌ Å©·¡½¬ ÇßÀ» ¶§, Áß¿äÇÑ Á¤º¸¸¦ ¼Õ½Ç·ÎºÎÅÍ º¸È£ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÀÏÀÌ ·ÎÄÃÀÇ ±â¾ïÀåÄ¡»ó¿¡ ¾ø´Â °æ¿ì, ÀÌ·¯ÇÑ ÇÁ·ÎÅØ¼ÇÀº ¾ø½À´Ï´Ù.
metaData ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇØ, ÀÌ ¸Þ¼Òµå·Î ½ÇÇàÇØ¾ß ÇÏ´Â ÀÔÃâ·Â Á¶ÀÛÀÇ ¼ö¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡ false ¸¦ °Ç³×ÁÖ¾úÀ» °æ¿ì, ±â¾ïÀåÄ¡¿¡ ±âÀÔÇÒ Çʿ䰡 ÀÖ´Â °ÍÀº ÆÄÀÏÀÇ ÄÁÅÙÃ÷ÀÇ °»½Å ³»¿ë »ÓÀÔ´Ï´Ù. true ¸¦ °Ç³×ÁÖ¾úÀ» °æ¿ì´Â ÆÄÀÏÀÇ ÄÁÅÙÃ÷¿Í ¸ÞŸµ¥ÀÌŸÀÇ °»½Å ³»¿ëÀ» ±âÀÔÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. À̰Ϳ¡´Â Åë»ó 1 °³ ÀÌ»óÀÇ ÀÔÃâ·Â Á¶ÀÛÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ¿¡ ½ÇÈ¿¼ºÀÌ ÀÖÀ»Áö ¾î¶³Áö´Â ±âÁØÀÌ µÇ´Â operating system¿¡ ÀÇÇØ Á¤ÇØÁö±â (À§ÇØ)¶§¹®¿¡, ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ä³ÎÀÌ Àоîµé¿© Àü¿ëÀ̾ ÀÔÃâ·Â Á¶ÀÛÀÌ ¹ß»ýÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÆÄÀÏÀÇ ¸ÞŸµ¥ÀÌŸ·Î¼ ÃÖÁ¾ ¾×¼¼½º ½Ã°¢À» º¸Á¸ÇØ, ÆÄÀÏÀÇ ÀÐÀ» ¿©Çà¿¡ °»½ÅÇÏ´Â °Í °°Àº operating systemµµ ÀÖ½À´Ï´Ù. ÀÌ Ã³¸®°¡ ½ÇÁ¦·Î ÇàÇØÁúÁö ¾î¶³Áö´Â ½Ã½ºÅÛ¿¡ ÀÇÇØ Á¤ÇØÁö±â (À§ÇØ)¶§¹®¿¡, ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â ÀÌ Å¬·¡½º¿¡ Á¤ÀÇµÈ ¸Þ¼Òµå¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ¿¡ ´õÇØÁø º¯°æÀ» °Á¦ÇÒ »ÓÀÔ´Ï´Ù. map
¸Þ¼Òµå È£Ãâ¿¡ ÀÇÇØ ÃëµæÇÑ
ÀÇ ÄÁÅÙÃ÷ÀÇ º¯°æ¿¡ ÀÇÇØ »ý±â´Â º¯°æÀº ¹Ýµå½Ã °Á¦´çÇÏÁö ¾Ê½À´Ï´Ù. ¸¿µå byte ¹öÆÛÀÇ ¸¿µå byte ¹öÆÛ
force
¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ¹öÆÛ ÄÁÅÙÃ÷¿¡ ´ëÇÑ º¯°æ ³»¿ëÀÌ °Á¦ÀûÀ¸·Î ±âÀÔÇØÁý´Ï´Ù.
metaData
- true ÀÇ °æ¿ì, ÀÌ ¸Þ¼Òµå´Â ÆÄÀÏÀÇ ÄÁÅÙÃ÷ ¹× ¸ÞŸµ¥ÀÌŸ¸¦ ±â¾ïÀåÄ¡¿¡ °Á¦ÀûÀ¸·Î ±âÀÔÇÒ Çʿ䰡 ÀÖ´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â ÄÁÅÙÃ÷ÀÇ º¯°æ¸¸À» °Á¦ÀûÀ¸·Î ±âÀÔÇÑ´Ù
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long transferTo(long position, long count, WritableByteChannel target) throws IOException
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÁöÁ¤µÈ position ·ÎºÎÅÍ ÃÖ´ë count ¹ÙÀÌÆ®¸¦ Àоîµé¿©, Ÿ°Ù ä³Î¿¡ ±âÀÔÇÏ·Á°í ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØµµ, ±× ä³ÎÀÇ º»·¡ÀÇ ¼ºÁúÀ̳ª »óÅ¿¡ ÀÇÇØ, ¿ä±¸µÈ ¹ÙÀÌÆ®ÀÇ ÀϺΰ¡ Àü¼Û µÇÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ¹ÙÀÌÆ®¼ö°¡, ÁöÁ¤µÈ position ·ÎºÎÅÍ ½ÃÀ۵Ǵ count º¸´Ù ÀûÀº °æ¿ì³ª, Ÿ°Ù ä³ÎÀÌ ºñºí·Ï ¸ðµå·Î, Ãâ·Â ¹öÆÛ³»ÀÇ ºó¹ÙÀÌÆ®¼ö°¡ count º¸´Ù ÀûÀº °æ¿ì, Àü¼Û µÇ´Â ¹ÙÀÌÆ®¼ö´Â ¿ä±¸µÈ ¹ÙÀÌÆ®¼öº¸´Ù Àû°Ô µË´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§Ä¡°¡ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °æ¿ì, ¹ÙÀÌÆ®´Â ÀÏÀý Àü¼Û µÇÁö ¾Ê½À´Ï´Ù. Ÿ°Ù ä³Î¿¡ À§Ä¡°¡ ÁöÁ¤µÇ°í ÀÖ´Â °æ¿ì, ¹ÙÀÌÆ®´Â ±× À§Ä¡·ÎºÎÅÍ ±âÀÔÇØÁý´Ï´Ù. ±× ÈÄ, ±âÀÔÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î À§Ä¡°¡ Áõ°¡ÇÕ´Ï´Ù.
ÀÌ Ã¤³Î·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àоîµé¿© Ÿ°Ù ä³Î¿¡ ±âÀÔÇÏ´Â ´Ü¼øÇÑ ·çÇÁº¸´Ù, ÀÌ ¸Þ¼Òµå ÂÊÀÌ ÀáÀçÀûÀ¸·Î È¿À²ÀûÀÔ´Ï´Ù. ¸¹Àº operating system´Â ÆÄÀÏ ½Ã½ºÅÛ Ä³½¬·ÎºÎÅÍ Å¸°Ù ä³Î¿¡ Á÷Á¢ ¹ÙÀÌÆ®¸¦ Àü¼Û ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§, ¹ÙÀÌÆ®ÀÇ Ä«ÇÇ´Â ÇàÇØÁöÁö ¾Ê½À´Ï´Ù.
position
- Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀϳ»ÀÇ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Ücount
- Àü¼Û µÇ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö. ºÎÀÇ °ª ÀÌ¿Ütarget
- Ÿ°Ù ä³Î
IllegalArgumentException
- »ó±âÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
NonReadableChannelException
- ÀÌ Ã¤³ÎÀÌ Àоîµé¿© °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
NonWritableChannelException
- Ÿ°Ù ä³ÎÀÌ ±âÀÔÇØ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³Î ¶Ç´Â Ÿ°Ù ä³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- Àü¼ÛÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ¸î°³ÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException
- Àü¼ÛÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ¾çÂÊ ¸ðµÎÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract long transferFrom(ReadableByteChannel src, long position, long count) throws IOException
¼Ò½º ä³Î·ÎºÎÅÍ ÃÖ´ë count ¹ÙÀÌÆ®¸¦ Àоîµé¿©, ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÁöÁ¤µÈ position ¿¡ ±âÀÔÇÏ·Á°í ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇØµµ, ä³ÎÀÇ º»·¡ÀÇ ¼ºÁúÀ̳ª »óÅ¿¡ ÀÇÇØ, ¿ä±¸µÈ ¹ÙÀÌÆ®ÀÇ ÀϺΰ¡ Àü¼Û µÇÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¼Ò½º ä³ÎÀÇ ¹ÙÀÌÆ®¼ö°¡ count º¸´Ù ÀûÀº °æ¿ì³ª, ¼Ò½º ä³ÎÀÌ ºñºí·Ï ¸ðµå·Î, ÀÔ·Â ¹öÆÛ³»¿¡ ³²¾Æ ÀÖ´Â °ð¹Ù·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ºó¹ÙÀÌÆ®¼ö°¡ count º¸´Ù ÀûÀº °æ¿ì, Àü¼Û µÇ´Â ¹ÙÀÌÆ®¼ö´Â ¿ä±¸µÈ ¹ÙÀÌÆ®¼öº¸´Ù Àû°Ô µË´Ï´Ù.
ÀÌ ¸Þ¼Òµå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§Ä¡°¡ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °æ¿ì, ¹ÙÀÌÆ®´Â ÀÏÀý Àü¼Û µÇÁö ¾Ê½À´Ï´Ù. ¼Ò½º ä³Î¿¡ À§Ä¡°¡ ÁöÁ¤µÇ°í ÀÖ´Â °æ¿ì, ¹ÙÀÌÆ®´Â ±× À§Ä¡·ÎºÎÅÍ ÀоÁý´Ï´Ù. ±× ÈÄ, ÀоÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î À§Ä¡°¡ Áõ°¡ÇÕ´Ï´Ù.
¼Ò½º ä³Î·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àоîµé¿© ÀÌ Ã¤³Î¿¡ ±âÀÔÇÏ´Â ´Ü¼øÇÑ ·çÇÁº¸´Ù, ÀÌ ¸Þ¼Òµå ÂÊÀÌ ÀáÀçÀûÀ¸·Î È¿À²ÀûÀÔ´Ï´Ù. ¸¹Àº operating system´Â ¼Ò½º ä³Î·ÎºÎÅÍ ÆÄÀÏ ½Ã½ºÅÛ Ä³½¬¿¡ Á÷Á¢ ¹ÙÀÌÆ®¸¦ Àü¼Û ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§, ¹ÙÀÌÆ®ÀÇ Ä«ÇÇ´Â ÇàÇØÁöÁö ¾Ê½À´Ï´Ù.
position
- Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀϳ»ÀÇ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Ücount
- Àü¼Û µÇ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö. ºÎÀÇ °ª ÀÌ¿Ü
IllegalArgumentException
- »ó±âÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
NonReadableChannelException
- ¼Ò½º ä³ÎÀÌ Àоîµé¿© °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
NonWritableChannelException
- ÀÌ Ã¤³ÎÀÌ ±âÀÔÇØ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³Î ¶Ç´Â ¼Ò½º ä³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- Àü¼ÛÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ¸î°³ÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException
- Àü¼ÛÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ¾çÂÊ ¸ðµÎÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract int read(ByteBuffer dst, long position) throws IOException
ÀÌ ¸Þ¼Òµå´Â ¹ÙÀÌÆ®°¡ ä³ÎÀÇ ÇöÀç À§Ä¡´Â ¾Æ´Ï°í ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ ÀоÁø´Ù°í ÇÏ´Â Á¡À» Á¦¿ÜÇϸé,read(ByteBuffer)
¸Þ¼Òµå¿Í °°½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§Ä¡°¡ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °æ¿ì, ¹ÙÀÌÆ®´Â ÀÏÀý ÀоÁöÁö ¾Ê½À´Ï´Ù.
dst
- ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛposition
- Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Ü
IllegalArgumentException
- À§Ä¡°¡ ºÎÀÇ °ªÀÇ °æ¿ì
NonReadableChannelException
- ÀÌ Ã¤³ÎÀÌ Àоîµé¿© °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- read Á¶ÀÛÀÇ ÁøÇàÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException
- read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract int write(ByteBuffer src, long position) throws IOException
ÀÌ ¸Þ¼Òµå´Â ¹ÙÀÌÆ®°¡ ä³ÎÀÇ ÇöÀç À§Ä¡´Â ¾Æ´Ï°í ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ ±âÀÔÇØÁø´Ù°í ÇÏ´Â Á¡À» Á¦¿ÜÇϸé,write(ByteBuffer)
¸Þ¼Òµå¿Í °°½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§Ä¡°¡ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁ´Ù Å« °æ¿ì, ÆÄÀÏ »çÀÌÁî´Â »õ·Î¿î ¹ÙÀÌÆ®¿¡ ¸ÂÃß¾î Ä¿Áý´Ï´Ù. ÀÌÀüÀÇ ÆÄÀÏÀÇ ¸¶Áö¸·°ú »õ·Ó°Ô ±âÀÔÇØÁø ¹ÙÀÌÆ®ÀÇ »çÀÌÀÇ ¹ÙÀÌÆ®ÀÇ °ªÀº ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
src
- ¹ÙÀÌÆ®ÀÇ Àü¼Û¿ø¹öÆÛposition
- Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Ü
IllegalArgumentException
- À§Ä¡°¡ ºÎÀÇ °ªÀÇ °æ¿ì
NonWritableChannelException
- ÀÌ Ã¤³ÎÀÌ ±âÀÔÇØ °¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- ±âÀÔÁß¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException
- ±âÀÔÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ¼¼Ä¡±â°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìpublic abstract MappedByteBuffer map(FileChannel.MapMode mode, long position, long size) throws IOException
ÆÄÀÏÀÇ area¸¦ ¸Þ¸ð¸®¿¡ ¸ÅÇÎ Çϴ ó¸®´Â ´ÙÀ½ÀÇ 3 °³ÀÇ ¸ðµå ÃÄ ¾î´ÀÂÊÀ̵çÀ¸·Î ÇàÇØÁý´Ï´Ù.
read Àü¿ë: ¹öÆÛ¸¦ ¼öÁ¤ÇÏ·Á°í Çϸé(ÀÚ) ReadOnlyBufferException
°¡ ½½·Î¿ì µÈ´Ù (MapMode.READ_ONLY
)
Àоîµé¿©/±âÀÔ: ¹öÆÛ¿¡ÀÇ º¯°æÀº ÃÖÁ¾ÀûÀ¸·Î ÆÄÀÏ¿¡ Àü´ÞµÇ´Â. ÀÌ·¯ÇÑ º¯°æÀÌ, °°Àº ÆÄÀÏ¿¡ ¸ÅÇÎ µÇ°í ÀÖ´Â ±× ¿ÜÀÇ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀνĵǴ °æ¿ì¶ó°í ÀνĵÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ´Ù (MapMode.READ_WRITE
)
ºñ°ø°³: ¹öÆÛ¿¡ÀÇ º¯°æÀº ÆÄÀÏ¿¡ Àü´ÞµÇÁö ¾Ê°í °°Àº ÆÄÀÏ¿¡ ¸ÅÇÎ µÇ°í ÀÖ´Â ±× ¿ÜÀÇ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÎ½ÄµÉ °Íµµ ¾ø´Ù. ±× ´ë½Å¿¡, º¯°æµÈ ºÎºÐÀÇ ºñ°ø°³ÀÇ Ä«Çǰ¡ ÀÛ¼ºµÈ´Ù (MapMode.PRIVATE
)
ÀÌ Ã¤³ÎÀº read Àü¿ëÀÇ ¸ÅÇÎÀÇ °æ¿ì´Â Àоîµé¿©, read/±âÀÔÀÇ ¸ÅÇÎ ¶Ç´Â ºñ°ø°³ ¸ÅÇÎÀÇ °æ¿ì´Â read¿Í ±âÀÔÀÇ ¾çÂÊ ¸ðµÎ°¡ °¡´ÉÇÏ°Ô µÇÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
ÀÌ ¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â
ÀÇ À§Ä¡´Â Á¦·Î, ¸®¹ÔÆ®¿Í ¿ë·®Àº size ¿¡ µ¿ÀÏÇØÁý´Ï´Ù. ¸¶Å©´Â Á¤ÀǵÇÁö ¾Ê½À´Ï´Ù. ¹öÆÛ¿Í ÀÌ ¹öÆÛ°¡ °¡¸®Å°´Â ¸ÅÇÎÀº ¹öÆÛ ÀÚü°¡ °¡º£Áö Ä÷ºÆ®µÉ ¶§±îÁö À¯È¿ÇÕ´Ï´Ù.
¸¿µå byte ¹öÆÛ
¸ÅÇÎÀÇ °á°ú´Â ±× ÀÛ¼º¿¡ »ç¿ëµÈ ÆÄÀÏ Ã¤³Î¿¡´Â ÀÇÁ¸ÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î, ä³ÎÀ» Ŭ·Î¿ìÁî ÇØµµ, ¸ÅÇÎÀÇ À¯È¿¼ºÀº ¹Ù²îÁö ¾Ê½À´Ï´Ù.
¸¹Àº °æ¿ì, ¸Þ¸ð¸®¿¡ ¸ÅÇÎ µÈ ÆÄÀÏÀÇ ÀÚ¼¼ÇÑ °ÍÀº º»ÁúÀûÀ¸·Î ±âÁØÀÌ µÇ´Â operating system¿¡ ÀÇÁ¸Çϱâ À§ÇØ(¶§¹®¿¡), ¹ÌÁöÁ¤ÀÔ´Ï´Ù. ¿ä±¸µÈ area°¡ ÀÌ Ã¤³ÎÀÇ ÆÄÀϳ»¿¡ ¿ÏÀüÇϰԴ Æ÷ÇÔµÇÁö ¾ÊÀº °æ¿ìÀÇ ÀÌ ¸Þ¼ÒµåÀÇ µ¿ÀÛÀº ¹ÌÁöÁ¤ÀÔ´Ï´Ù. º¯°æµÈ °ÍÀº ±âÁØÀÌ µÇ´Â ÆÄÀÏÀÇ ÄÁÅÙÃ÷Àΰ¡ »çÀÌÁîÀΰ¡, ÀÌ ÇÁ·Î±×·¥¿¡ ÀÇÇÏ´Â °ÍÀΰ¡ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇÏ´Â °ÍÀΰ¡, ¹öÆÛ¿¡ Àü´ÞµÇ´ÂÁö ¾î¶²Áö´Â ¹ÌÁöÁ¤ÀÔ´Ï´Ù. ¹öÆÛÀÇ º¯°æÀÌ ÆÄÀÏ¿¡ Àü´ÞµÇ´Â ¼Óµµ´Â ¹ÌÁöÁ¤ÀÔ´Ï´Ù.
´ëºÎºÐÀÇ operating system¿¡¼´Â ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ¸ÅÇÎ ÇÏ´Â ÆíÀÌ, Åë»óÀÇ read
¸Þ¼Òµå ¶Ç´Â write
¸Þ¼Òµå¸¦ »ç¿ëÇØ ¼ö½Ê ų·Î¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅÍÀÇ Àоîµé¿© ¶Ç´Â ±âÀÔÀ» ½Ç½ÃÇÏ´Â °Íº¸´Ùµµ ºÎÇϰ¡ Ä¿Áý´Ï´Ù. ¼º´ÉÀ» Áß½ÃÇÑ´Ù¸é, ºñ±³Àû Å« ÆÄÀϸ¸À» ¸ÅÇÎ ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
mode
- ÆÄÀÏÀÇ ¸ÅÇÎÀ» Àоîµé¿© Àü¿ë ¸ðµå·Î ½Ç½ÃÇÏ´Â °æ¿ì´Â FileChannel.MapMode
Ŭ·¡½º¿¡ Á¤Àǵǰí ÀÖ´Â Á¤¼ö READ_ONLY
, Àоîµé¿©/±âÀÔ ¸ðµå·Î ½Ç½ÃÇÏ´Â °æ¿ì´Â µ¿Å¬·¡½º¿¡ Á¤Àǵǰí ÀÖ´Â Á¤¼ö READ_WRITE
, ºñ°ø°³ (copy-on-write) ¸ðµå·Î ½Ç½ÃÇÏ´Â °æ¿ì´Â µ¿Å¬·¡½º¿¡ Á¤Àǵǰí ÀÖ´Â Á¤¼ö PRIVATE
position
- ÆÄÀϳ»ÀÇ ¸ÅÇÎ µÈ areaÀÇ °³½Ã À§Ä¡. ºÎÀÇ °ª ÀÌ¿Üsize
- ¸ÅÇÎ µÇ´Â areaÀÇ »çÀÌÁî. Á¦·Î ÀÌ»ó,Integer.MAX_VALUE
ÀÌÇÏÀÇ °ª
NonReadableChannelException
- mode °¡ READ_ONLY
Àε¥ ä³ÎÀÌ Àоîµé¿© ºÒ°¡ »óŰ¡ µÇ¾î ÀÖ¾úÀ» °æ¿ì
NonWritableChannelException
- mode °¡ READ_WRITE
¶Ç´Â PRIVATE
Àε¥ ä³ÎÀÌ Àоîµé¿©/±âÀÔ ºÒ°¡ »óŰ¡ µÇ¾î ÀÖ¾úÀ» °æ¿ì
IllegalArgumentException
- »ó±âÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìFileChannel.MapMode
,
MappedByteBuffer
public abstract FileLock lock(long position, long size, boolean shared) throws IOException
ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÀº area°¡ ¶ô µÇ´ÂÁö ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ´ÂÁö threadÀÇ È£ÃâÇØ¿¡ ¼¼Ä¡±â°¡ ¹ß»ýÇÒ ¶§±îÁö ºí·Ï µË´Ï´Ù.
ÀÌ ¸Þ¼ÒµåÀÇ È£ÃâÁß¿¡ ÀÌ Ã¤³ÎÀÌ ´Ù¸¥ thread¿¡ ÀÇÇØ Ŭ·Î¿ìÁî µÇ¸é(ÀÚ),AsynchronousCloseException
°¡ ½½·Î¿ì µË´Ï´Ù.
¶ôÀÌ È¹µæµÇ´Â °ÍÀ» ±â´Ù¸®°í ÀÖ´Â µ¿¾È¿¡ thread È£ÃâÇØ¿¡ ¼¼Ä¡±â°¡ ¹ß»ýÇßÀ» °æ¿ì, ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¾îFileLockInterruptionException
°¡ ½½·Î¿ì µË´Ï´Ù. È£Ãâ¿øÀÇ ¼¼Ä¡±â »óŰ¡ ¼³Á¤µÇ¸é(ÀÚ), ÀÌ ¸Þ¼Òµå°¡ ºÒ·Á °¡ ±× ´ÙÀ½¿¡ ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù. threadÀÇ ¼¼Ä¡±â »óÅ´ º¯°æµÇÁö ¾Ê½À´Ï´Ù.
position ÆÄ¶ó¹ÌÅÍ¿Í size ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÈ area°¡, ±âÁØÀÌ µÇ´Â ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖÀ» ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¶Ç, ±âÁØÀÌ µÇ´Â ÆÄÀÏÀ» ¿À¹ö·¦ ÇÒ Çʿ䵵 ¾ø½À´Ï´Ù. ¶ô areaÀÇ »çÀÌÁî´Â °íÁ¤ÀÔ´Ï´Ù. Ãʱ⠻óÅ¿¡¼´Â ÆÄÀÏÀÇ ¸¶Áö¸·ÀÌ ¶ô ¿µ¿ª³»¿¡ Æ÷ÇԵǾî À־, ÆÄÀÏ »çÀÌÁî°¡ ÀÌ areaº¸´Ù Ä¿Á® ¹ö·ÈÀ» °æ¿ì, »õ·Î¿î ºÎºÐ¿¡´Â ¶ôÀÌ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. ÆÄÀÏ Àüü¿¡ ¶ôÀ» Àû¿ëÇÒ Çʿ䰡 ÀÖ´Â °Í¿¡µµ ºÒ±¸Çϰí, ÆÄÀÏ »çÀÌÁî°¡ Ä¿Áú °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì´Â Á¦·Î·ÎºÎÅÍ ¿¹ÃøµÇ´Â ÃÖ´ë ÆÄÀÏ »çÀÌÁî ÀÌ»óÀÇ area¸¦ Àá±Þ´Ï´Ù. Á¦·Î ÀμöÀÇ lock()
¸Þ¼Òµå´Â ´Ü¼øÇÏ°Ô »çÀÌÁî Long.MAX_VALUE
ÀÇ area¸¦ Àá±Þ´Ï´Ù.
°øÀ¯ ¶ôÀ» ¼Æ÷Æ®ÇÏÁö ¾Ê´Â operating system°¡ ÀÖ´Â °æ¿ì, °øÀ¯ ¶ô ¿ä±¸´Â ¹èŸ ¶ô ¿ä±¸¿¡ ÀÚµ¿ÀûÀ¸·Î º¯È¯µË´Ï´Ù. ½Å±Ô ȹµæ ¶ôÀÌ °øÀ¯ ¶ôÀÏ±î ¹èŸ ¶ôÀϱî´Â »ý¼ºµÇ´Â ¶ô ¿ÀºêÁ§Æ®ÀÇ isShared
¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÀÏ ¶ôÀº Java °¡»ó ¸Ó½Å Àüü¸¦ À§Çؼ(¶§¹®¿¡) º¸°ü À¯ÁöµË´Ï´Ù. À̰͵éÀº µ¿ÀÏ °¡»ó ¸Ó½Å³»ÀÇ º¹¼ö thread¿¡ ÀÇÇÑ ÆÄÀÏ¿¡ÀÇ ¾×¼¼½º¸¦ Á¦¾îÇÏ·Á¸é ÀûÇÕÇÏÁö ¾Ê½À´Ï´Ù.
position
- ¶ô area°¡ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Üsize
- ¶ô areaÀÇ »çÀÌÁî. ºÎÀÇ °ª ÀÌ¿Ü. position + size ÀÇ ÇÕ°èµµ ºÎÀÇ °ª ÀÌ¿Üshared
- °øÀ¯ ¶ôÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â true. ÀÌ °æ¿ì, ÀÌ Ã¤³ÎÀº Àоîµé¿© (°æ¿ì¿¡ µû¶ó¼´Â ±âÀÔµµ) °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¾È µÈ´Ù. ¹èŸ ¶ôÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â false. ÀÌ °æ¿ì, ÀÌ Ã¤³ÎÀº ±âÀÔÇØ (°æ¿ì¿¡ µû¶ó¼´Â readµµ) °¡´ÉÇÏÁö ¾ÊÀ¸¸é ¾È µÈ´Ù
IllegalArgumentException
- »ó±âÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- ÀÌ ¸Þ¼Òµå³»¿¡¼ thread È£ÃâÀÌ ºí·Ï µÇ°í ÀÖ´Â µ¿¾È¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
FileLockInterruptionException
- È£Ãâ¿øthread°¡, ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â µ¿¾È¿¡ ¼¼Ä¡±â¸¦ ¹Þ¾ÒÀ» °æ¿ì
OverlappingFileLockException
- ¿ä±¸µÈ area¸¦ ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ¹ú½á È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ ¿À¹ö·¦ ÇÑ area¸¦ Àá±×·Á Çϰí ÀÖ´Â °æ¿ì
NonReadableChannelException
- shared °¡ true À̸é, ÀÌ Ã¤³ÎÀº Àоîµé¿© ºÒ°¡ »óÅÂ
NonWritableChannelException
- shared °¡ false ÀÎ °Í¿¡µµ ºÒ±¸Çϰí, ÀÌ Ã¤³ÎÀÌ ±âÀÔÇØ ºÒ°¡ »óÅÂÀÎ °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìlock()
,
tryLock()
,
tryLock(long, long, boolean)
public final FileLock lock() throws IOException
ÀÌ ¸Þ¼Òµå¸¦ fc.lock() ÀÇ Çü½Ä¿¡¼ È£ÃâÇßÀ» °æ¿ì, ´ÙÀ½ÀÇ È£Ãâ°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
fc. lock
(0L, Long.MAX_VALUE, false)
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
AsynchronousCloseException
- ÀÌ ¸Þ¼Òµå³»¿¡¼ thread È£ÃâÀÌ ºí·Ï µÇ°í ÀÖ´Â µ¿¾È¿¡, ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
FileLockInterruptionException
- È£Ãâ¿øthread°¡, ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â µ¿¾È¿¡ ¼¼Ä¡±â¸¦ ¹Þ¾ÒÀ» °æ¿ì
OverlappingFileLockException
- ¿ä±¸µÈ area¸¦ ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ¹ú½á È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ °°Àº ÆÄÀÏÀÇ ¿À¹ö·¦ ÇÑ area¸¦ Àá±×·Á Çϰí ÀÖ´Â °æ¿ì
NonReadableChannelException
- shared °¡ true À̸é, ÀÌ Ã¤³ÎÀº Àоîµé¿© ºÒ°¡ »óÅÂ
NonWritableChannelException
- shared °¡ false ÀÎ °Í¿¡µµ ºÒ±¸Çϰí, ÀÌ Ã¤³ÎÀÌ ±âÀÔÇØ ºÒ°¡ »óÅÂÀÎ °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìlock(long, long, boolean)
,
tryLock()
,
tryLock(long, long, boolean)
public abstract FileLock tryLock(long position, long size, boolean shared) throws IOException
ÀÌ ¸Þ¼Òµå´Â ºí·Ï µÇÁö ¾Ê½À´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇϸé(ÀÚ), ¿ä±¸µÈ area·Î ¶ôÀ» ȹµæÇß´ÂÁö ¶ôÀÇ È¹µæ¿¡ ½ÇÆÐÇß´ÂÁö¸¦ ³ªÅ¸³»´Â °á°ú°¡ Áï½Ã µ¹·ÁÁÖ¾îÁý´Ï´Ù. ¿À¹ö·¦ ÇÑ ¶ôÀÌ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇØ º¸°ü À¯ÁöµÇ°í ÀÖ¾ú±â ¶§¹®¿¡ ¶ô¿¡ ½ÇÆÐÇßÀ» °æ¿ì,null °¡ µ¹·ÁÁÖ¾îÁý´Ï´Ù. ±× ¿ÜÀÇ ¿øÀÎÀ¸·Î ¶ô¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â ÀûÀýÇÑ ¿¹¿Ü°¡ ½½·Î¿ì µË´Ï´Ù.
position ÆÄ¶ó¹ÌÅÍ¿Í size ÆÄ¶ó¹ÌÅÍ·Î ÁöÁ¤µÈ area°¡, ±âÁØÀÌ µÇ´Â ÆÄÀÏ¿¡ Æ÷ÇԵǾî ÀÖÀ» ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¶Ç, ±âÁØÀÌ µÇ´Â ÆÄÀÏÀ» ¿À¹ö·¦ ÇÒ Çʿ䵵 ¾ø½À´Ï´Ù. ¶ô areaÀÇ »çÀÌÁî´Â °íÁ¤ÀÔ´Ï´Ù. Ãʱ⠻óÅ¿¡¼´Â ÆÄÀÏÀÇ ¸¶Áö¸·ÀÌ ¶ô ¿µ¿ª³»¿¡ Æ÷ÇԵǾî À־, ÆÄÀÏ »çÀÌÁî°¡ ÀÌ areaº¸´Ù Ä¿Á® ¹ö·ÈÀ» °æ¿ì, »õ·Î¿î ºÎºÐ¿¡´Â ¶ôÀÌ Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. ÆÄÀÏ Àüü¿¡ ¶ôÀ» Àû¿ëÇÒ Çʿ䰡 ÀÖ´Â °Í¿¡µµ ºÒ±¸Çϰí, ÆÄÀÏ »çÀÌÁî°¡ Ä¿Áú °¡´É¼ºÀÌ ÀÖ´Â °æ¿ì´Â Á¦·Î·ÎºÎÅÍ ¿¹ÃøµÇ´Â ÃÖ´ë ÆÄÀÏ »çÀÌÁî ÀÌ»óÀÇ area¸¦ Àá±Þ´Ï´Ù. Á¦·Î ÀμöÀÇ tryLock()
¸Þ¼Òµå´Â ´Ü¼øÇÏ°Ô »çÀÌÁî Long.MAX_VALUE
ÀÇ area¸¦ Àá±Þ´Ï´Ù.
°øÀ¯ ¶ôÀ» ¼Æ÷Æ®ÇÏÁö ¾Ê´Â operating system°¡ ÀÖ´Â °æ¿ì, °øÀ¯ ¶ô ¿ä±¸´Â ¹èŸ ¶ô ¿ä±¸¿¡ ÀÚµ¿ÀûÀ¸·Î º¯È¯µË´Ï´Ù. ½Å±Ô ȹµæ ¶ôÀÌ °øÀ¯ ¶ôÀÏ±î ¹èŸ ¶ôÀϱî´Â »ý¼ºµÇ´Â ¶ô ¿ÀºêÁ§Æ®ÀÇ isShared
¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÆÇ´ÜÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÄÀÏ ¶ôÀº Java °¡»ó ¸Ó½Å Àüü¸¦ À§Çؼ(¶§¹®¿¡) º¸°ü À¯ÁöµË´Ï´Ù. À̰͵éÀº µ¿ÀÏ °¡»ó ¸Ó½Å³»ÀÇ º¹¼ö thread¿¡ ÀÇÇÑ ÆÄÀÏ¿¡ÀÇ ¾×¼¼½º¸¦ Á¦¾îÇÏ·Á¸é ÀûÇÕÇÏÁö ¾Ê½À´Ï´Ù.
position
- ¶ô area°¡ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. ºÎÀÇ °ª ÀÌ¿Üsize
- ¶ô areaÀÇ »çÀÌÁî. ºÎÀÇ °ª ÀÌ¿Ü. position + size ÀÇ ÇÕ°èµµ ºÎÀÇ °ª ÀÌ¿Üshared
- °øÀ¯ ¶ôÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â true, ¹èŸ ¶ôÀ» ¿ä±¸ÇÏ´Â °æ¿ì´Â false
IllegalArgumentException
- »ó±âÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
OverlappingFileLockException
- ¿ä±¸µÈ area¸¦ ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ¹ú½á È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ °°Àº ÆÄÀÏÀÇ ¿À¹ö·¦ ÇÑ area¸¦ Àá±×·Á Çϰí ÀÖ´Â °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìlock()
,
lock(long, long, boolean)
,
tryLock()
public final FileLock tryLock() throws IOException
ÀÌ ¸Þ¼Òµå¸¦ fc.trylock() ÀÇ Çü½Ä¿¡¼ È£ÃâÇßÀ» °æ¿ì, ´ÙÀ½ÀÇ È£Ãâ°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
fc. tryLock
(0L, Long.MAX_VALUE, false)
ClosedChannelException
- ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî Çϰí ÀÖ´Â °æ¿ì
OverlappingFileLockException
- ¿ä±¸µÈ area¸¦ ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ¹ú½á È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼Òµå³»¿¡¼ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ ¿À¹ö·¦ ÇÑ area¸¦ Àá±×·Á Çϰí ÀÖ´Â °æ¿ì
IOException
- ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìlock()
,
lock(long, long, boolean)
,
tryLock(long, long, boolean)
|
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.