JavaTM 2 Platform
Standard Ed. 5.0

java.nio.channels
Ŭ·¡½º FileChannel

java.lang.Object 
  »óÀ§¸¦ È®Àå java.nio.channels.spi.AbstractInterruptibleChannel 
      »óÀ§¸¦ È®Àå java.nio.channels.FileChannel
¸ðµç ±¸ÇöµÈ ÀÎÅÍÆäÀ̽º:
Closeable, ByteChannel, Channel, GatheringByteChannel, InterruptibleChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel

public abstract class FileChannel
extends AbstractInterruptibleChannel
implements ByteChannel, GatheringByteChannel, ScatteringByteChannel

ÆÄÀÏÀÇ Àбâ, Ãâ·ÂÇØ, ¸ÅÇÎ, Á¶ÀÛ¿ë ä³ÎÀÔ´Ï´Ù.

ÆÄÀÏ Ã¤³ÎÀº ÆÄÀϳ»¿¡ Á¶È¸ ¹×º¯°æ ÀÌ °¡´ÉÇÑ ÇöÀçÀÇ ¡¸À§Ä¡¡¹¸¦ °¡Áö°í ÀÖ½À´Ï´Ù. ÆÄÀÏ ÀÚü¿¡´Â read/Ãâ·Â°ú ÇöÀçÀÇ »çÀÌÁî Á¶È¸°¡ °¡´ÉÇÑ °¡º¯ÀåÀÇ ¹ÙÀÌÆ® ¼ø¼­°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â ÇöÀçÀÇ »çÀÌÁ ¿ôµµ´Â ¹ÙÀÌÆ®¼ö°¡ Ãâ·ÂÇØÁö¸é Ä¿Á®, À߶ó¹ö¸²¿¡ ÀÇÇØ ÀÛ¾ÆÁý´Ï´Ù. ÆÄÀÏ¿¡´Â ¾×¼¼½º Çã°¡ ÄÁÅÙÃ÷ ŸÀÔ, ÃÖÁ¾ °»½Å ½Ã°¢µîÀÇ ¡¸¸ÞŸµ¥ÀÌŸ¡¹µµ °ü·ÃÁöÀ» ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸ÞŸµ¥ÀÌŸ¾ÆÅ©¼¼½º¸¦ À§ÇÑ ¸Þ¼­µå´Â Á¤ÀÇÇÏÁö ¾Ê½À´Ï´Ù.

ÀÌ Å¬·¡½º´Â ¹ÙÀÌÆ® ä³Î¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Á¶ÀÛ (Àбâ, Ãâ·ÂÇØ, Ŭ·Î¿ìÁî) ¿Ü¿¡ ´ÙÀ½°ú °°Àº ÆÄÀÏ °íÀ¯ÀÇ Á¶ÀÛÀ» Á¤ÀÇÇÕ´Ï´Ù.

ÆÄÀÏ Ã¤³ÎÀº º¹¼öÀÇ º´Çà 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¸¦ °Ç³×ÁÖ´Â °Í¿¡ ÀÇÇØ ÆÄÀÏ Ãâ·Â ½ºÆ®¸²À» ÀÛ¼ºÇßÀ» °æ¿ì, ÀÌ ½ºÆ®¸²·ÎºÎÅÍ ÃëµæÇÑ Ãâ·Â °¡´ÉÇÑ ÆÄÀÏ Ã¤³ÎÀº ¡¸Ãß°¡ ¸ðµå¡¹°¡ µË´Ï´Ù. ÀÌ ¸ðµå·Î °ü·ÃÇÑ Ãâ·Â Á¶ÀÛÀ» È£ÃâÇϸé, ¿ì¼± À§°ªÀÌ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ±× ÈÄ, ¿ä±¸µÈ µ¥ÀÌÅÍ°¡ Ãâ·ÂÇØÁý´Ï´Ù. ÀÌ·¯ÇÑ À§Ä¡ÀÇ À̵¿°ú µ¥ÀÌÅÍÀÇ Ãâ·ÂÀº ºÒ°¡ºÐÀÎ ´ÜÀÏÀÇ Á¶ÀÛÀ¸·Î¼­ ÇàÇØÁý´Ï´Ù. ÀÌ Á¶ÀÛÀº ½Ã½ºÅÛ¿¡ Á¸ÇÏ°í Àֱ⠶§¹®¿¡ ¹ÌÁöÁ¤ÀÔ´Ï´Ù.

µµÀÔµÈ ¹öÀü :
1.4
°ü·Ã Ç׸ñ:
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
 

»ý¼ºÀÚ »ó¼¼

FileChannel

protected FileChannel()
ÀÌ Å¬·¡½ºÀÇ »õ·Î¿î ÀνºÅϽº¸¦ ÃʱâÈ­ÇÕ´Ï´Ù.

¸Þ¼­µåÀÇ »ó¼¼

read

public abstract int read(ByteBuffer  dst)
                  throws IOException 
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.

¹ÙÀÌÆ®ÀÇ read´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. ±× ÈÄ, ½ÇÁ¦·Î ÀÐÈù ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ ÆÄÀÏ À§°ªÀÌ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ Á¡À¸·Î½á, ÀÌ ¸Þ¼­µå´Â ReadableByteChannel ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ReadableByteChannel ³»ÀÇ read
ÆĶó¹ÌÅÍ:
dst - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

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 ¾Æ·¡ÀÇ Á¦·Î ¶Ç´Â Á¤ÀÇ ¼ö
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

public final long read(ByteBuffer [] dsts)
                throws IOException 
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.

¹ÙÀÌÆ®ÀÇ read´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. ±× ÈÄ, ½ÇÁ¦·Î ÀÐÈù ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ ÆÄÀÏ À§°ªÀÌ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ Á¡À¸·Î½á, ÀÌ ¸Þ¼­µå´Â ScatteringByteChannel ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º ScatteringByteChannel ³»ÀÇ read
ÆĶó¹ÌÅÍ:
dsts - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
¹Ýȯ°ª:
ÀÐÈù ¹®ÀÚ¼ö. Á¦·ÎÀΰ¡ ä³ÎÀÌ ½ºÆ®¸²ÀÇ ¸¶Áö¸·¿¡ À̸£°í ÀÖ´Â °æ¿ì´Â -1
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public abstract int write(ByteBuffer  src)
                   throws IOException 
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼ø¼­¸¦ ÁöÁ¤ÀÇ ¹öÆ۷κÎÅÍ ½á³À´Ï´Ù.

ä³ÎÀÌ Ãß°¡ ¸ðµå ÀÌ¿ÜÀÇ °æ¿ì, ¹ÙÀÌÆ®ÀÇ ¼­µÎ´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. Ãß°¡ ¸ðµå¿¡¼­´Â ÃÖÃÊ·Î À§°ªÀÌ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î ÇÊ¿äÇϸé Ä¿Áý´Ï´Ù. ÆÄÀÏ À§Ä¡´Â ½ÇÁ¦·Î Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ Á¡À¸·Î½á, ÀÌ ¸Þ¼­µå´Â WritableByteChannel ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º WritableByteChannel ³»ÀÇ write
ÆĶó¹ÌÅÍ:
src - ¹ÙÀÌÆ®ÀÇ Ãëµæó ¹öÆÛ
¹Ýȯ°ª:
Ãâ·ÂÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

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 - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public final long write(ByteBuffer [] srcs)
                 throws IOException 
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼ø¼­°¡ ÁöÁ¤µÈ ¹öÆ۷κÎÅÍ ½á³À´Ï´Ù.

ä³ÎÀÌ Ãß°¡ ¸ðµå ÀÌ¿ÜÀÇ °æ¿ì, ¹ÙÀÌÆ®ÀÇ ¼­µÎ´Â ÀÌ Ã¤³ÎÀÇ ÇöÀçÀÇ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ °³½ÃµË´Ï´Ù. Ãß°¡ ¸ðµå¿¡¼­´Â ÃÖÃÊ·Î À§°ªÀÌ ÆÄÀÏÀÇ ¸»¹Ì±îÁö ÁøÇàµË´Ï´Ù. ÆÄÀÏÀÇ »çÀÌÁî´Â Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î ÇÊ¿äÇϸé Ä¿Áý´Ï´Ù. ÆÄÀÏ À§Ä¡´Â ½ÇÁ¦·Î Ãâ·ÂÇØÁø ¹ÙÀÌÆ®¼ö¿¡ ÀÇÇØ °»½ÅµË´Ï´Ù. ±× ÀÌ¿ÜÀÇ Á¡À¸·Î½á, ÀÌ ¸Þ¼­µå´Â GatheringByteChannel ÀÎÅÍÆäÀ̽ºÀÇ ÁöÁ¤´ë·Î µ¿ÀÛÇÕ´Ï´Ù.

Á¤ÀÇ:
ÀÎÅÍÆäÀ̽º GatheringByteChannel ³»ÀÇ write
ÆĶó¹ÌÅÍ:
srcs - ¹ÙÀÌÆ®ÀÇ Ãëµæó ¹öÆÛ
¹Ýȯ°ª:
Ãâ·ÂÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

position

public abstract long position()
                       throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡¸¦ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡. ÆÄÀÏÀÇ ¼±µÎ·ÎºÎÅÍ ÇöÀç À§Ä¡±îÁöÀÇ ¹ÙÀÌÆ®¼ö¸¦ ³ªÅ¸³»´Â ºÎ°¡ ¾Æ´Ñ Á¤¼ö
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

position

public abstract FileChannel  position(long newPosition)
                              throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§Ä¡¸¦ ¼³Á¤ÇÕ´Ï´Ù.

À§Ä¡ÀÇ °ªÀ» ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °ªÀ¸·Î ¼³Á¤ÇÏ´Â °ÍÀº Á¤´çÇÑ Ã³¸®ÀÔ´Ï´Ù. ±×·¯³ª, ÀÌ Ã³¸®¿¡ ÀÇÇØ ÆÄÀÏÀÇ »çÀÌÁî°¡ º¯°æµÇ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °ªÀÌ ¼³Á¤µÇ¾î ÀÖ´Â À§Ä¡¿¡¼­ ¹ÙÀÌÆ®¸¦ Àо·Á°í Çϸé, Áï¼®¿¡¼­ ÆÄÀÏÀÇ ¸¶Áö¸·ÀÌ ÅëÁöµË´Ï´Ù. °°Àº À§Ä¡¿¡¼­ ¹ÙÀÌÆ®¸¦ Ãâ·ÂÇÏ·Á°í Çϸé, »õ·Î¿î ¹ÙÀÌÆ®¿¡ ¸ÂÃß¾î ÆÄÀÏÀÇ »çÀÌÁî°¡ Ä¿Áý´Ï´Ù. ÀÌÀüÀÇ ÆÄÀÏÀÇ ¸¶Áö¸·À¸·ÎºÎÅÍ »õ·Ó°Ô Ãâ·ÂÇØÁø ¹ÙÀÌÆ®±îÁöÀÇ »çÀÌ¿¡ Á¸ÀçÇÏ´Â ¹ÙÀÌÆ®ÀÇ °ªÀº ¹ÌÁöÁ¤ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
newPosition - »õ·Î¿î À§Ä¡. ÆÄÀÏÀÇ ¼±µÎ·ÎºÎÅÍÀÇ ¹ÙÀÌÆ®¼ö¸¦ ³ªÅ¸³»´Â ºÎ°¡ ¾Æ´Ñ Á¤¼ö
¹Ýȯ°ª:
ÀÌ ÆÄÀÏ Ã¤³Î
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IllegalArgumentException - »õ·Î¿î À§°ªÀÌ À߸øµÈ °ª ÀÇ °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

size

public abstract long size()
                   throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ ¸®ÅÏÇÕ´Ï´Ù.

¹Ýȯ°ª:
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁî (¹ÙÀÌÆ® ´ÜÀ§)
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

truncate

public abstract FileChannel  truncate(long size)
                              throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ¸»¹Ì¸¦ À߶ó ¹ö·Á ÁöÁ¤µÈ »çÀÌÁî·Î ÇÕ´Ï´Ù.

ÁöÁ¤µÈ »çÀÌÁî°¡ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁ´Ù ÀÛÀº °æ¿ì, ÆÄÀÏÀÇ ¸»¹Ì¸¦ À߶ó ¹ö¸± ¼ö ÀÖ¾î »õ·Î¿î ÆÄÀÏÀÇ ¸¶Áö¸·¿¡ µé¾î°¡Áö ¾Ê´Â ¹ÙÀÌÆ®°¡ ÆıâµË´Ï´Ù. ÁöÁ¤µÈ »çÀÌÁî°¡ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁî¿Í °°Àº°¡ ±×°Íº¸´Ù Å« °æ¿ì, ÆÄÀÏ »çÀÌÁî´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù. ¾î´À ÂÊÀÇ °æ¿ìµµ, ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ À§°ªÀÌ ÁöÁ¤µÈ »çÀÌÁ´Ù Å« °æ¿ì, ±× »çÀÌÁî¿¡ ¸ÂÃß¾î ÆÄÀÏ »çÀÌÁî°¡ º¯°æµË´Ï´Ù.

ÆĶó¹ÌÅÍ:
size - »õ·Î¿î »çÀÌÁî. ºÎ°¡ ¾Æ´Ñ ¹ÙÀÌÆ®¼ö
¹Ýȯ°ª:
ÀÌ ÆÄÀÏ Ã¤³Î
¿¹¿Ü:
NonWritableChannelException - ÀÌ Ã¤³ÎÀÌ Ãâ·Â°¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IllegalArgumentException - »õ·Î¿î »çÀÌÁî°¡ À߸øµÈ °ª ÀÇ °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

force

public abstract void force(boolean metaData)
                    throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ °»½Å ³»¿ëÀº ±× ±â¾ïÀåÄ¡¿¡ °­Á¦ÀûÀ¸·Î Ãâ·ÂÇØÁý´Ï´Ù.

ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÌ ·ÎÄÃÀÇ ±â¾ïÀåÄ¡»ó¿¡ ÀÖ´Â °æ¿ì, ÀÌ ¸Þ¼­µåÀÇ ¹Ýȯ°ªÀ¸·ÎºÎÅÍ, ÀÌ Ã¤³ÎÀÇ ÀÛ¼º½Ã ¶Ç´Â ÀÌ ¸Þ¼­µåÀÇ Á¦ÀÏ ÃÖ±ÙÀÇ È£ÃâÇØ ÀÌÈÄÀÇ ÆÄÀÏÀÇ º¯°æ ³»¿ëÀÌ ¸ðµÎ ±× µð¹ÙÀ̽º¿¡ Ãâ·ÂÇØÁö°í ÀÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ý¿¡ÀÇÇØ ½Ã½ºÅÛÀÌ Å©·¡½¬ ÇßÀ» ¶§, Áß¿äÇÑ Á¤º¸¸¦ ¼Õ½Ç·ÎºÎÅÍ º¸È£ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÇÑÆí, ÆÄÀÏÀÌ ·ÎÄÃÀÇ ±â¾ïÀåÄ¡»ó¿¡ ¾ø´Â °æ¿ì, Ãâ·ÂÀº ÇàÇØÁöÁö ¾Ê½À´Ï´Ù.

metaData ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ, ÀÌ ¸Þ¼­µå·Î ½ÇÇàÇØ¾ß ÇÏ´Â ÀÔÃâ·Â Á¶ÀÛÀÇ ¼ö¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆĶó¹ÌÅÍ¿¡ false¸¦ °Ç³×ÁÖ¾úÀ» °æ¿ì, ±â¾ïÀåÄ¡¿¡ Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖ´Â °ÍÀº ÆÄÀÏÀÇ ÄÁÅÙÃ÷ÀÇ °»½Å ³»¿ë »ÓÀÔ´Ï´Ù. true¸¦ °Ç³×ÁÖ¾úÀ» °æ¿ì´Â ÆÄÀÏÀÇ ÄÁÅÙÃ÷¿Í ¸ÞŸµ¥ÀÌŸÀÇ °»½Å ³»¿ëÀ» Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌ°Í¿¡´Â º¸Åë 1°³ ÀÌ»óÀÇ ÀÔÃâ·Â Á¶ÀÛÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ ÆĶó¹ÌÅÍ¿¡ ½ÇÈ¿¼ºÀÌ ÀÖÀ»Áö ¾î¶³Áö´Â ±âÃÊ°¡ µÇ´Â OS¿¡ ÀÇÇØ Á¤ÇØÁö±â ¶§¹®¿¡ ¹ÌÁöÁ¤ÀÔ´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇϸé, ä³ÎÀÌ Àбâ Àü¿ëÀ̾ ÀÔÃâ·Â Á¶ÀÛÀÌ ¹ß»ýÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÆÄÀÏÀÇ ¸ÞŸµ¥ÀÌŸ·Î¼­ ÃÖÁ¾ ¾×¼¼½º ½Ã°¢À» º¸Á¸ÇØ, ÆÄÀÏÀÇ ÀÐÀ» ¿©Çà¿¡ °»½ÅÇÏ´Â °Í °°Àº OS µµ ÀÖ½À´Ï´Ù. ÀÌ Ã³¸®°¡ ½ÇÁ¦·Î ÇàÇØÁúÁö ¾î¶³Áö´Â ½Ã½ºÅÛ¿¡ ÀÇÇØ Á¤ÇØÁö±â ¶§¹®¿¡ ¹ÌÁöÁ¤ÀÔ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ÀÌ Å¬·¡½º¿¡ Á¤ÀÇµÈ ¸Þ¼­µå¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ¿¡ ´õÇØÁø º¯°æÀ» °­Á¦ÇÒ »ÓÀÔ´Ï´Ù. map ¸Þ¼­µå È£Ãâ¿¡ ÀÇÇØ ÃëµæÇÑ¸Ê µÈ byte ¹öÆÛ ÄÁÅÙÃ÷ÀÇ º¯°æ¿¡ ÀÇÇØ »ý±â´Â º¯°æÀº ¹Ýµå½Ã °­Á¦´çÇÏÁö ¾Ê½À´Ï´Ù. ¸Ê µÈ byte ¹öÆÛÀÇ force ¸Þ¼­µå¸¦ È£ÃâÇϸé, ¹öÆÛ ÄÁÅÙÃ÷¿¡ ´ëÇÑ º¯°æ ³»¿ëÀÌ °­Á¦ÀûÀ¸·Î Ãâ·ÂÇØÁý´Ï´Ù.

ÆĶó¹ÌÅÍ:
metaData - trueÀÎ °æ¿ì, ÀÌ ¸Þ¼­µå´Â ÆÄÀÏÀÇ ÄÁÅÙÃ÷ ¹× ¸ÞŸµ¥ÀÌŸ¸¦ ±â¾ïÀåÄ¡¿¡ °­Á¦ÀûÀ¸·Î Ãâ·ÂÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ±× ¿ÜÀÇ °æ¿ì´Â ÄÁÅÙÃ÷ÀÇ º¯°æ¸¸À» °­Á¦ÀûÀ¸·Î Ãâ·ÂÇÑ´Ù
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

transferTo

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 - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

transferFrom

public abstract long transferFrom(ReadableByteChannel  src,
                                  long position,
                                  long count)
                           throws IOException 
ÁöÁ¤µÈ read °¡´ÉÇÑ ¹ÙÀÌÆ® ä³Î·ÎºÎÅÍ ÀÌ Ã¤³ÎÀÇ ÆÄÀÏ¿¡ ¹ÙÀÌÆ®¸¦ Àü¼Û ÇÕ´Ï´Ù.

¼Ò½º ä³Î·ÎºÎÅÍ ÃÖ´ë count ¹ÙÀÌÆ®¸¦ Àбâ, ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ÁöÁ¤µÈ position¿¡ Ãâ·ÂÇÏ·Á°í ÇÕ´Ï´Ù. ÀÌ ¸Þ¼­µå¸¦ È£ÃâÇصµ, ä³ÎÀÇ º»·¡ÀÇ ¼ºÁúÀ̳ª »óÅ¿¡ÀÇÇØ ¿ä±¸µÈ ¹ÙÀÌÆ®ÀÇ ÀϺΰ¡ Àü¼Û µÇÁö ¾Ê´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ¼Ò½º ä³ÎÀÇ ¹ÙÀÌÆ®¼ö°¡ count º¸´Ù ÀûÀº °æ¿ì³ª, ¼Ò½º ä³ÎÀÌ ºñºí·Ï ¸ðµå·Î ÀÔ·Â ¹öÆÛ³»¿¡ ³²¾Æ ÀÖ´Â °ð¹Ù·Î ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ºó¹ÙÀÌÆ®¼ö°¡ count º¸´Ù ÀûÀº °æ¿ì, Àü¼Û µÇ´Â ¹ÙÀÌÆ®¼ö´Â ¿ä±¸µÈ ¹ÙÀÌÆ®¼öº¸´Ù Àû°Ô µË´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§°ªÀÌ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °æ¿ì, ¹ÙÀÌÆ®´Â ÀÏÀý Àü¼Û µÇÁö ¾Ê½À´Ï´Ù. ¼Ò½º ä³Î¿¡ À§°ªÀÌ °¡¸®Å°´Â °æ¿ì, ¹ÙÀÌÆ®´Â ±× À§Ä¡·ÎºÎÅÍ ÀоÁý´Ï´Ù. ±× ÈÄ, ÀоÁø ¹ÙÀÌÆ®¼ö¿¡ ¸ÂÃß¾î À§°ªÀÌ Áõ°¡ÇÕ´Ï´Ù.

¼Ò½º ä³Î·ÎºÎÅÍ µ¥ÀÌÅ͸¦ Àбâ ÀÌ Ã¤³Î¿¡ Ãâ·ÂÇÑ´Ù°í ÇÏ´Â ´Ü¼øÇÑ ·çÇÁº¸´Ù, ÀÌ ¸Þ¼­µå ÂÊÀÌ Âß È¿À²ÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ¸¹Àº OS ´Â ¼Ò½º ä³Î·ÎºÎÅÍ ÆÄÀÏ ½Ã½ºÅÛ Ä³½¬¿¡ ¹ÙÀÌÆ®¸¦ Á÷Á¢ Àü¼Û ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¶§, ¹ÙÀÌÆ®ÀÇ Ä«ÇÇ´Â ÇàÇØÁöÁö ¾Ê½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
src - ¼Ò½º ä³Î
position - Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀϳ»ÀÇ À§Ä¡. À߸øµÈ °ª ÀÌ¿Ü
count - Àü¼Û µÇ´Â ÃÖ´ë ¹ÙÀÌÆ®¼ö. À߸øµÈ °ª ÀÌ¿Ü
¹Ýȯ°ª:
½ÇÁ¦·Î Àü¼Û µÈ ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
IllegalArgumentException - »ó±âÀÇ ÆĶó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
NonReadableChannelException - ¼Ò½º ä³ÎÀÌ Àб⠰¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
NonWritableChannelException - ÀÌ Ã¤³ÎÀÌ Ãâ·Â°¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³Î ¶Ç´Â ¼Ò½º ä³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - Àü¼ÛÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ¸î°³ÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Àü¼ÛÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ¾çÂÊ ¸ðµÎÀÇ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

read

public abstract int read(ByteBuffer  dst,
                         long position)
                  throws IOException 
ÀÌ Ã¤³ÎÀÇ ¹ÙÀÌÆ® ¼ø¼­¸¦, ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ ¹öÆÛ¿¡ ÀоîµéÀÔ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ¹ÙÀÌÆ®°¡ ä³ÎÀÇ ÇöÀç À§°ªÀÌ ¾Æ´Ï°í ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ ÀоÁø´Ù°í ÇÏ´Â Á¡À» Á¦¿ÜÇϸé, read(ByteBuffer) ¸Þ¼­µå¿Í °°½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§°ªÀÌ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁ´Ù Å« °æ¿ì, ¹ÙÀÌÆ®´Â ÀÏÀý ÀоÁöÁö ¾Ê½À´Ï´Ù.

ÆĶó¹ÌÅÍ:
dst - ¹ÙÀÌÆ®ÀÇ Àü¼Ûó ¹öÆÛ
position - Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. À߸øµÈ °ª ÀÌ¿Ü
¹Ýȯ°ª:
ÀоÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀΰ¡ ÁöÁ¤µÈ À§°ªÀÌ ÆÄÀÏÀÇ ÇöÀçÀÇ »çÀÌÁî ÀÌ»óÀÇ °æ¿ì´Â -1
¿¹¿Ü:
IllegalArgumentException - À§°ªÀÌ À߸øµÈ °ª ÀÇ °æ¿ì
NonReadableChannelException - ÀÌ Ã¤³ÎÀÌ Àб⠰¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - read Á¶ÀÛÀÇ ÁøÇàÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

write

public abstract int write(ByteBuffer  src,
                          long position)
                   throws IOException 
ÁöÁ¤µÈ ¹öÆÛÀÇ ¹ÙÀÌÆ® ¼ø¼­¸¦ ÀÌ Ã¤³ÎÀÇ ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡¿¡ Ãâ·ÂÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå´Â ¹ÙÀÌÆ®°¡ ä³ÎÀÇ ÇöÀç À§°ªÀÌ ¾Æ´Ï°í ÁöÁ¤µÈ ÆÄÀÏ À§Ä¡·ÎºÎÅÍ Ãâ·ÂÇØÁø´Ù°í ÇÏ´Â Á¡À» Á¦¿ÜÇϸé, write(ByteBuffer) ¸Þ¼­µå¿Í °°½À´Ï´Ù. ÀÌ ¸Þ¼­µå´Â ÀÌ Ã¤³ÎÀÇ À§Ä¡¸¦ º¯°æÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤µÈ À§°ªÀÌ ÇöÀçÀÇ ÆÄÀÏ »çÀÌÁ´Ù Å« °æ¿ì, ÆÄÀÏ »çÀÌÁî´Â »õ·Î¿î ¹ÙÀÌÆ®¿¡ ¸ÂÃß¾î Ä¿Áý´Ï´Ù. ÀÌÀüÀÇ ÆÄÀÏÀÇ ¸¶Áö¸·°ú »õ·Ó°Ô Ãâ·ÂÇØÁø ¹ÙÀÌÆ®ÀÇ »çÀÌÀÇ ¹ÙÀÌÆ®ÀÇ °ªÀº ¹ÌÁöÁ¤ÀÔ´Ï´Ù.

ÆĶó¹ÌÅÍ:
src - ¹ÙÀÌÆ®ÀÇ Àü¼Û¿ø¹öÆÛ
position - Àü¼ÛÀÌ °³½ÃµÇ´Â ÆÄÀÏ À§Ä¡. À߸øµÈ °ª ÀÌ¿Ü
¹Ýȯ°ª:
Ãâ·ÂÇØÁö´Â ¹ÙÀÌÆ®¼ö. Á¦·ÎÀÇ °æ¿ìµµ ÀÖ´Ù
¿¹¿Ü:
IllegalArgumentException - À§°ªÀÌ À߸øµÈ °ª ÀÇ °æ¿ì
NonWritableChannelException - ÀÌ Ã¤³ÎÀÌ Ãâ·Â°¡´ÉÇÏÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
AsynchronousCloseException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread¿¡ ÀÇÇØ ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî µÇ¾úÀ» °æ¿ì
ClosedByInterruptException - Ãâ·ÂÁß¿¡ ´Ù¸¥ thread·ÎºÎÅÍÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ¾ú±â ¶§¹®¿¡ ä³ÎÀÌ Å¬·Î¿ìÁî ÇØ, ÇöÀçÀÇ threadÀÇ ÀÎÅÍ·´Æ® »óÅ°¡ ¼³Á¤µÇ¾úÀ» °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì

map

public abstract MappedByteBuffer  map(FileChannel.MapMode  mode,
                                     long position,
                                     long size)
                              throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀÏÀÇ ¿µ¿ªÀ» Á÷Á¢ ¸Þ¸ð¸®¿¡ ¸ÅÇÎ ÇÕ´Ï´Ù.

ÆÄÀÏÀÇ ¿µ¿ªÀ» ¸Þ¸ð¸®¿¡ ¸ÅÇÎ Çϴ ó¸®´Â ´ÙÀ½ÀÇ 3°³ÀÇ ¸ðµå ÃÄ ¾î´ÀÂÊÀ̵çÀ¸·Î ÇàÇØÁý´Ï´Ù.

ÀÌ Ã¤³ÎÀº 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

lock

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)

lock

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)

tryLock

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
¹Ýȯ°ª:
»õ·Î¿î ȹµæ ¶ôÀ» ³ªÅ¸³»´Â ¶ô °´Ã¼. ¿À¹ö·¦ ÇÑ ¶ôÀÌ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇØ È®º¸µÇ°í ÀÖ¾ú±â ¶§¹®¿¡ ¶ô¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â null
¿¹¿Ü:
IllegalArgumentException - »ó±âÀÇ ÆĶó¹ÌÅÍÀÇ ÀüÁ¦ Á¶°ÇÀÌ Ã¤¿öÁöÁö ¾ÊÀº °æ¿ì
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
OverlappingFileLockException - ¿ä±¸µÈ ¿µ¿ªÀ» ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ÀÌ¹Ì È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼­µå³»¿¡¼­ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ °°Àº ÆÄÀÏÀÇ ¿À¹ö·¦ ÇÑ ¿µ¿ªÀ» Àá±×·Á ÇÏ°í ÀÖ´Â °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
°ü·Ã Ç׸ñ:
lock(), lock(long, long, boolean), tryLock()

tryLock

public final FileLock  tryLock()
                       throws IOException 
ÀÌ Ã¤³ÎÀÇ ÆÄÀϻ󿡼­ ¹èŸ ¶ôÀ» ȹµæÇÏ·Á°í ÇÕ´Ï´Ù.

ÀÌ ¸Þ¼­µå¸¦ fc.trylock() Çü½Ä¿¡¼­ È£ÃâÇßÀ» °æ¿ì, ´ÙÀ½ÀÇ È£Ãâ°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.


     fc. tryLock (0L, Long.MAX_VALUE, false) 

¹Ýȯ°ª:
»õ·Î¿î ȹµæ ¶ôÀ» ³ªÅ¸³»´Â ¶ô °´Ã¼. ¿À¹ö·¦ ÇÑ ¶ôÀÌ ´Ù¸¥ ÇÁ·Î±×·¥¿¡ ÀÇÇØ È®º¸µÇ°í ÀÖ¾ú±â ¶§¹®¿¡ ¶ô¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â null
¿¹¿Ü:
ClosedChannelException - ÀÌ Ã¤³ÎÀÌ Å¬·Î¿ìÁî ÇÏ°í ÀÖ´Â °æ¿ì
OverlappingFileLockException - ¿ä±¸µÈ ¿µ¿ªÀ» ¿À¹ö·¦ ÇÏ´Â ¶ôÀÌ ÀÌ Java °¡»ó ¸Ó½Å¿¡ ÀÌ¹Ì È®º¸µÇ°í ÀÖ´Â °æ¿ì, ¶Ç´Â ÀÌ ¸Þ¼­µå³»¿¡¼­ ºí·Ï µÇ°í ÀÖ´Â ´Ù¸¥ thread°¡ ¿À¹ö·¦ ÇÑ ¿µ¿ªÀ» Àá±×·Á ÇÏ°í ÀÖ´Â °æ¿ì
IOException - ±× ¿ÜÀÇ ÀÔÃâ·Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ì
°ü·Ã Ç׸ñ:
lock(), lock(long, long, boolean), tryLock(long, long, boolean)

JavaTM 2 Platform
Standard Ed. 5.0

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.