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