public abstract class AsynchronousFileChannel extends Object implements AsynchronousChannel
ãã®ã¯ã©ã¹ã«ãã£ãŠå®çŸ©ãããopenã¡ãœããã®1ã€ãåŒã³åºãããšã§ãã¡ã€ã«ãéããšãéåæãã¡ã€ã«ã»ãã£ãã«ãäœæãããŸãã ãã¡ã€ã«ã«ã¯ãèªã¿èŸŒã¿/æžã蟌ã¿ãšçŸåšã®ãµã€ãºã®ç
§äŒãå¯èœãªå¯å€é·ã®ãã€ãã»ã·ãŒã±ã³ã¹ãå«ãŸããŠããŸãã ãã¡ã€ã«ã®ãµã€ãºã¯ãçŸåšã®ãµã€ãºãäžåããã€ãæ°ãæžã蟌ãŸãããšå€§ãããªããåãæšãŠã«ãã£ãŠå°ãããªããŸãã
éåæãã¡ã€ã«ã»ãã£ãã«ã«ã¯ããã¡ã€ã«å
ã®çŸåšäœçœ®ããããŸããã 代ããã«ãéåææäœãéå§ããããããã®èªåãã¡ãœãããšæžèŸŒã¿ã¡ãœããã«å¯Ÿãããã¡ã€ã«äœçœ®ãæå®ãããŸãã CompletionHandlerã¯ãã©ã¡ãŒã¿ãšããŠæå®ãããå
¥åºåæäœã®çµæãæ¶è²»ããããã«åŒã³åºãããŸãã ãã®ã¯ã©ã¹ã¯ãéåææäœãéå§ããèªåãã¡ãœãããšæžèŸŒã¿ã¡ãœãããå®çŸ©ããæäœã®ä¿çãããŠããçµæã衚ãFutureãè¿ããŸãã æäœãå®äºãããã©ããã確èªããæäœã®å®äºãåŸ
æ©ããçµæãååŸããããã«Futureã䜿çšããããšãã§ããŸãã
ãã®ã¯ã©ã¹ã¯ãèªåãæäœãšæžèŸŒã¿æäœã«å ããŠãæ¬¡ã®æäœãå®çŸ©ããŸãã
ãã¡ã€ã«ã®æŽæ°ã¯ãåºç€ãšãªã£ãŠããèšæ¶è£
眮ã«forced outãããŸãããããã£ãŠãã·ã¹ãã ãã¯ã©ãã·ã¥ããŠãããŒã¿ã®æå€±ã¯åé¿ãããŸãã
ãã¡ã€ã«ã®é åã¯ããã®ä»ã®ããã°ã©ã ããã¢ã¯ã»ã¹ã§ããªãããã«ããã¯ãããŸãã
AsynchronousFileChannelã¯ãå
¥åºåã€ãã³ããåŠçããŠããã£ãã«ã§å
¥åºåæäœã®çµæãæ¶è²»ããçµäºãã³ãã©ã«ãã£ã¹ãããããããã«ãã¿ã¹ã¯ã®éä¿¡å
ã®ã¹ã¬ããã»ããŒã«ã«é¢é£ä»ããããŸãã ãã£ãã«ã§éå§ãããå
¥åºåæäœã®çµäºãã³ãã©ã¯ãã¹ã¬ããã»ããŒã«å
ã®ããããã®ã¹ã¬ããã«ãã£ãŠåŒã³åºãããããšãä¿èšŒãããŸã(ããã«ãã£ãŠãçµäºãã³ãã©ã¯å¿
ããäºæãããIDãæã€ã¹ã¬ããã«ãã£ãŠå®è¡ãããŸã)ã å
¥åºåæäœããã ã¡ã«çµäºããéå§ã¹ã¬ããèªäœãã¹ã¬ããã»ããŒã«å
ã®1ã€ã®ã¹ã¬ããã§ããå Žåãçµäºãã³ãã©ã¯éå§ã¹ã¬ããã«ãã£ãŠçŽæ¥åŒã³åºãããããšããããŸãã ã¹ã¬ããã»ããŒã«ãæå®ããã«AsynchronousFileChannelãäœæãããå Žåããã£ãã«ã¯ãã»ãã®ãã£ãã«ãšå
±æãããå¯èœæ§ããããã·ã¹ãã ã«äŸåããããã©ã«ãã®ã¹ã¬ããã»ããŒã«ã«é¢é£ä»ããããŸãã ããã©ã«ãã®ã¹ã¬ããã»ããŒã«ã¯ãAsynchronousChannelGroupã¯ã©ã¹ã§å®çŸ©ãããã·ã¹ãã ã»ããããã£ã«ãã£ãŠæ§æãããŸãã
ãã®åã®ãã£ãã«ã¯ãè€æ°ã®ã¹ã¬ããã§äžŠè¡ããŠäœ¿çšã§ããŸãã closeã¡ãœããã¯ãChannelã€ã³ã¿ãã§ãŒã¹ã®æå®ã©ããã«ãã€ã§ãåŒã³åºããŸãã ããã«ãã£ãŠããã£ãã«ã§æªåŠçã®éåææäœã¯ãã¹ãŠãäŸå€AsynchronousCloseExceptionãã¹ããŒããŠå®äºããŸãã è€æ°ã®èªåãæäœãšæžèŸŒã¿æäœãåæã«æªåŠçã«ãªãããšããããŸãã è€æ°ã®èªåãæäœãšæžèŸŒã¿æäœãæªåŠçã®ãšãã¯ãå
¥åºåæäœã®é åºãããã³çµäºãã³ãã©ãåŒã³åºãããé åºã¯æå®ãããŸãããç¹ã«ãæäœãéå§ãããé åºã§å®è¡ããããšã¯ããããŸããã èªã¿åããŸãã¯æžèŸŒã¿æã«äœ¿çšãããByteBuffersã¯ãè€æ°ã®å
¥åºåæäœã§äžŠè¡ããŠäœ¿çšããããšã¯ã§ããŸããã ããã«ãå
¥åºåæäœã®éå§åŸã¯ãæäœã®å®äºåŸãŸã§ãããã¡ãžã®ã¢ã¯ã»ã¹ãè¡ãããªãããæ³šæããŠãã ããã
FileChannelãšåæ§ã«ããã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã«ãã£ãŠæäŸããããã¡ã€ã«ã®ãã¥ãŒã¯ãåãããã°ã©ã å
ã®ãã®ä»ã®ã€ã³ã¹ã¿ã³ã¹ã«ãã£ãŠæäŸãããåããã¡ã€ã«ã®ã»ãã®ãã¥ãŒãšççŸããªãããšãä¿èšŒãããŠããŸãã ããããåºç€ãšãªããªãã¬ãŒãã£ã³ã°ã»ã·ã¹ãã ã®ãã£ãã·ã¥åŠçãããããã¯ãŒã¯ã»ãã¡ã€ã«ã»ã·ã¹ãã ã»ãããã³ã«ã«ããé
å»¶ãåå ã§ããã®ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ã«ãã£ãŠæäŸããããã¥ãŒãšã䞊è¡ããŠå®è¡ãããŠããããã°ã©ã ã§èªèããããã®ä»ã®ãã¥ãŒãççŸããå¯èœæ§ããªãããã§ã¯ãããŸããã ãã®åé¡ã¯ããããã®ããã°ã©ã ãèšè¿°ããŠããèšèªã®éãããããããåäžãã·ã³ã§å®è¡ãããŠãããã©ãããšã¯é¢ä¿ãªãçºçããŸãã ããããççŸã¯ãã·ã¹ãã ã«ãã£ãŠçãããã®ã§ããããæªæå®ã§ãã
| 修食å | ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|---|
protected |
AsynchronousFileChannel() |
ãã®ã¯ã©ã¹ã®æ°ããã€ã³ã¹ã¿ã³ã¹ãåæåããŸãã
|
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
abstract void |
force(boolean metaData) |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®æŽæ°å
容ã¯ããã®èšæ¶è£
眮ã«åŒ·å¶çã«æžã蟌ãŸããŸãã
|
Future<FileLock> |
lock() |
ãã®ãã£ãã«ã®ãã¡ã€ã«äžã«æä»ããã¯ãèšå®ããŸãã
|
<A> void |
lock(A attachment, CompletionHandler<FileLock,? super A> handler) |
ãã®ãã£ãã«ã®ãã¡ã€ã«äžã«æä»ããã¯ãèšå®ããŸãã
|
abstract Future<FileLock> |
lock(long position, long size, boolean shared) |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åãããã¯ããŸãã
|
abstract <A> void |
lock(long position, long size, boolean shared, A attachment, CompletionHandler<FileLock,? super A> handler) |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åãããã¯ããŸãã
|
static AsynchronousFileChannel |
open(Path file, OpenOption... options) |
èªã¿èŸŒã¿ãŸãã¯æžã蟌ã¿(ãããã¯ãã®äž¡æ¹)çšã®ãã¡ã€ã«ãéããäœæãããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããããã®éåæã®ãã¡ã€ã«ã»ãã£ãã«ãè¿ããŸãã
|
static AsynchronousFileChannel |
open(Path file, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs) |
èªã¿èŸŒã¿ãŸãã¯æžã蟌ã¿(ãããã¯ãã®äž¡æ¹)çšã®ãã¡ã€ã«ãéããäœæãããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ããããã®éåæã®ãã¡ã€ã«ã»ãã£ãã«ãè¿ããŸãã
|
abstract Future<Integer> |
read(ByteBuffer dst, long position) |
ãã®ãã£ãã«ã®ãã€ãã»ã·ãŒã±ã³ã¹ããæå®ããããã¡ã€ã«äœçœ®ãããããã¡ã«èªã¿èŸŒã¿ãŸãã
|
abstract <A> void |
read(ByteBuffer dst, long position, A attachment, CompletionHandler<Integer,? super A> handler) |
ãã®ãã£ãã«ã®ãã€ãã»ã·ãŒã±ã³ã¹ããæå®ããããã¡ã€ã«äœçœ®ãããããã¡ã«èªã¿èŸŒã¿ãŸãã
|
abstract long |
size() |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®çŸåšã®ãµã€ãºãè¿ããŸãã
|
abstract AsynchronousFileChannel |
truncate(long size) |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®æ«å°Ÿãåè©°ããæå®ããããµã€ãºã«ããŸãã
|
FileLock |
tryLock() |
ãã®ãã£ãã«ã®ãã¡ã€ã«äžã§æä»ããã¯ãç²åŸããããšããŸãã
|
abstract FileLock |
tryLock(long position, long size, boolean shared) |
ãã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åã§ããã¯ãç²åŸããããšããŸãã
|
abstract Future<Integer> |
write(ByteBuffer src, long position) |
æå®ããããããã¡ã®ãã€ãã»ã·ãŒã±ã³ã¹ããã®ãã£ãã«ã®æå®ããããã¡ã€ã«äœçœ®ã«æžã蟌ã¿ãŸãã
|
abstract <A> void |
write(ByteBuffer src, long position, A attachment, CompletionHandler<Integer,? super A> handler) |
æå®ããããããã¡ã®ãã€ãã»ã·ãŒã±ã³ã¹ããã®ãã£ãã«ã®æå®ããããã¡ã€ã«äœçœ®ã«æžã蟌ã¿ãŸãã
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcloseprotected AsynchronousFileChannel()
public static AsynchronousFileChannel open(Path file, Set<? extends OpenOption> options, ExecutorService executor, FileAttribute<?>... attrs) throws IOException
optionsãã©ã¡ãŒã¿ã¯ãã¡ã€ã«ãéãæ¹æ³ã決å®ããŸãã READãªãã·ã§ã³ãšWRITEãªãã·ã§ã³ã«ããããã¡ã€ã«ãèªåãã§ãããæžèŸŒã¿å¯èœã§ããããæ±ºå®ãããŸãã ãããã®ãªãã·ã§ã³ãé
åã«å«ãŸããŠããªãå Žåãæ¢åã®ãã¡ã€ã«ã¯èªåãå¯èœã§ãã
READããã³WRITE以å€ã«ã次ã®ãªãã·ã§ã³ãååšããå ŽåããããŸãã
| ãªãã·ã§ã³ | 説æ |
|---|---|
TRUNCATE_EXISTING |
æ¢åã®ãã¡ã€ã«ãéããšããã¡ã€ã«ã¯æåã«ãµã€ãºã0ãã€ãã«åãè©°ããããŸãã ãã®ãªãã·ã§ã³ã¯ããã¡ã€ã«ãèªåãå°çšã«éããå Žåã¯ç¡èŠãããŸãã |
CREATE_NEW |
ãã®ãªãã·ã§ã³ãããå Žåãæ°ãã空ã®ãã¡ã€ã«ãäœæããããã¡ã€ã«ããã§ã«ååšããå Žåã¯å€±æããŸãã ãã¡ã€ã«ã®äœææã«ããã¡ã€ã«ããããã©ããã®ãã§ãã¯ãããªãå Žåã®ãã¡ã€ã«ã®çæã¯ãã»ãã®ãã¡ã€ã«ã»ã·ã¹ãã ã®æäœã«å¯ŸããŠååçã§ãã ãã®ãªãã·ã§ã³ã¯ããã¡ã€ã«ãèªåãå°çšã«éããå Žåã¯ç¡èŠãããŸãã |
CREATE |
ãã®ãªãã·ã§ã³ãååšããå Žåã¯ãæ¢åã®ãã¡ã€ã«ãååšããå Žåã¯ãããéãããããã§ãªãå Žåã¯æ°ãããã¡ã€ã«ãäœæãããŸãã ãã¡ã€ã«ã®äœææã«ããã¡ã€ã«ããããã©ããã®ãã§ãã¯ãããªãå Žåã®ãã¡ã€ã«ã®çæã¯ãã»ãã®ãã¡ã€ã«ã»ã·ã¹ãã ã®æäœã«å¯ŸããŠååçã§ãã ãã®ãªãã·ã§ã³ã¯ãCREATE_NEWãªãã·ã§ã³ãååšããå ŽåãŸãã¯ãã¡ã€ã«ãèªåãå°çšã«éããå Žåã¯ç¡èŠãããŸãã |
DELETE_ON_CLOSE |
ãã®ãªãã·ã§ã³ãããå Žåãå®è£
ã¯ãã¡ã€ã«ãcloseã¡ãœããã«ãã£ãŠéãããããšãã«ããã¹ãã»ãšãã©ãŒãã§ãã¡ã€ã«ãåé€ããããšããŸãã closeã¡ãœãããåŒã³åºãããå ŽåãJavaä»®æ³ãã·ã³ã®çµäºæã«ãã¡ã€ã«ãåé€ããããã®ãã¹ãã»ãšãã©ãŒãã®è©Šã¿ãè¡ãããŸãã |
SPARSE |
æ°ãããã¡ã€ã«ã®äœææã«ããã®ãªãã·ã§ã³ã¯æ°ãããã¡ã€ã«ãã¹ããŒã¹ã§ããããšã®ãã³ãã«ãªããŸãã ãã®ãªãã·ã§ã³ã¯ãæ°ãããã¡ã€ã«ãäœæããªãå Žåã¯ç¡èŠãããŸãã |
SYNC |
ãã¡ã€ã«ã®å 容ãŸãã¯ã¡ã¿ããŒã¿ã®æŽæ°ã¯ãåºæ¬ãšãªãèšæ¶è£ 眮ã«åæçã«æžã蟌ãŸããããšãå¿ èŠãšããŸãã(ãåæå ¥åºåãã¡ã€ã«æŽåæ§ããåç §)ã |
DSYNC |
ãã¡ã€ã«ã®å å®¹ã®æŽæ°ã¯ãåºæ¬ãšãªãèšæ¶è£ 眮ã«åæçã«æžã蟌ãŸããããšãå¿ èŠãšããŸãã(ãåæå ¥åºåãã¡ã€ã«æŽåæ§ããåç §)ã |
å®è£ ã¯ã远å ã®ãªãã·ã§ã³ããµããŒãããå ŽåããããŸãã
executorãã©ã¡ãŒã¿ã¯ãå
¥åºåã€ãã³ããåŠçããŠãçµæã®ãã£ãã«ã§éå§ãããæäœã®çµäºçµæããã£ã¹ãããããããã«ãã¿ã¹ã¯ã®éä¿¡å
ãšãªãExecutorServiceã§ãã ãããã®ã¿ã¹ã¯ã®æ§è³ªã¯å®è£
ã«å€§ããäŸåãããããExecutorã®æ§ææã«ã¯æ³šæããŠãã ããã æå°éã¢ã³ããŠã³ã圢åŒã®ã¯ãŒã¯ã»ãã¥ãŒããµããŒãããã¯ãã§ãããexecuteã¡ãœããã®åŒåºãåŽã¹ã¬ããã§ã¿ã¹ã¯ãå®è¡ããããšã¯ãããŸããã ãã£ãã«ãéããŠããéã«executorãµãŒãã¹ãã·ã£ããããŠã³ããå Žåã®åäœã¯ä¿èšŒãããŠããŸããã
attrsãã©ã¡ãŒã¿ã¯ããã¡ã€ã«ã®äœææã«ååçã«èšå®ãããããã¡ã€ã«file-attributesã®ãªãã·ã§ã³ã®é
åã§ãã
æ°ãããã£ãã«ã¯ãPathãäœæãããããã€ãäžã§newFileChannelã¡ãœãããåŒã³åºãããšã«ãã£ãŠäœæãããŸãã
file - éããŸãã¯äœæãããã¡ã€ã«ã®ãã¹options - ãã¡ã€ã«ãéãæ¹æ³ãæå®ãããªãã·ã§ã³executor - ã¹ã¬ããã»ããŒã«ããŸãã¯ãã£ãã«ãããã©ã«ãã®ã¹ã¬ããã»ããŒã«ã«é¢é£ä»ããå Žåã¯nullattrs - ãã¡ã€ã«ã®äœææã«ååçã«èšå®ããããã¡ã€ã«å±æ§ã®ãªãã·ã§ã³ã®ãªã¹ãIllegalArgumentException - ã»ããã«ãªãã·ã§ã³ã®ç¡å¹ãªçµã¿åãããå«ãŸããå ŽåUnsupportedOperationException - fileããéåæãã¡ã€ã«ã»ãã£ãã«ã®äœæããµããŒãããªããããã€ãã«é¢é£ä»ããããŠããå ŽåãæªãµããŒãã®ãªãŒãã³ã»ãªãã·ã§ã³ãæå®ãããå ŽåããŸãã¯ãã¡ã€ã«ã®äœææã«ååçã«èšå®ã§ããªã屿§ãé
åã«å«ãŸããå ŽåIOException - å
¥åºåãšã©ãŒãçºçããå ŽåSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãã€ã³ã¹ããŒã«ããããããå®è£
ã«ãã£ãŠå¿
èŠãšãããæªæå®ã®ã¢ã¯ã»ã¹æš©ãæåŠããå Žåã ããã©ã«ãã»ãããã€ãã§ããã¡ã€ã«ãèªåãçšã«éãããå Žåã¯ãSecurityManager.checkRead(String)ã¡ãœãããåŒã³åºãããŠãã¡ã€ã«ãžã®èªåãã¢ã¯ã»ã¹ããã§ãã¯ãããŸãã ãã¡ã€ã«ãæžèŸŒã¿çšã«éãããå Žåã¯ãSecurityManager.checkWrite(String)ã¡ãœãããåŒã³åºãããŠæžèŸŒã¿ã¢ã¯ã»ã¹ããã§ãã¯ãããŸãã public static AsynchronousFileChannel open(Path file, OpenOption... options) throws IOException
ãã®ã¡ãœããåŒåºãã®åäœã¯ã次ã®åŒåºãã®åäœãšãŸã£ããåäžã§ãã
ch.open(file, opts, null, new FileAttribute<?>[0]);
ããã§ãoptsã¯ããã®ã¡ãœããã«å¯ŸããŠæå®ããããªãã·ã§ã³ãå«ãŸããSetã§ãã
çµæã®ãã£ãã«ã¯ãå ¥åºåã€ãã³ããåŠçããŠãçµæã®ãã£ãã«ã§å®è¡ãããéåææäœã®çµæãæ¶è²»ããçµäºãã³ãã©ã«ãã£ã¹ãããããããã«ãã¿ã¹ã¯ã®éä¿¡å ã§ããããã©ã«ãã®ã¹ã¬ããã»ããŒã«ã«é¢é£ä»ããããŸãã
file - éããŸãã¯äœæãããã¡ã€ã«ã®ãã¹options - ãã¡ã€ã«ãéãæ¹æ³ãæå®ãããªãã·ã§ã³IllegalArgumentException - ã»ããã«ãªãã·ã§ã³ã®ç¡å¹ãªçµã¿åãããå«ãŸããå ŽåUnsupportedOperationException - fileããã¡ã€ã«ã»ãã£ãã«ã®äœæããµããŒãããªããããã€ãã«é¢é£ä»ããããŠããå ŽåããŸãã¯æªãµããŒãã®ãªãŒãã³ã»ãªãã·ã§ã³ãæå®ãããå ŽåIOException - å
¥åºåãšã©ãŒãçºçããå ŽåSecurityException - ã»ãã¥ãªãã£ã»ãããŒãžã£ãã€ã³ã¹ããŒã«ããããããå®è£
ã«ãã£ãŠå¿
èŠãšãããæªæå®ã®ã¢ã¯ã»ã¹æš©ãæåŠããå Žåã ããã©ã«ãã»ãããã€ãã§ããã¡ã€ã«ãèªåãçšã«éãããå Žåã¯ãSecurityManager.checkRead(String)ã¡ãœãããåŒã³åºãããŠãã¡ã€ã«ãžã®èªåãã¢ã¯ã»ã¹ããã§ãã¯ãããŸãã ãã¡ã€ã«ãæžèŸŒã¿çšã«éãããå Žåã¯ãSecurityManager.checkWrite(String)ã¡ãœãããåŒã³åºãããŠæžèŸŒã¿ã¢ã¯ã»ã¹ããã§ãã¯ãããŸãã public abstract long size()
throws IOException
ClosedChannelException - ãã®ãã£ãã«ãã¯ããŒãºããŠããå ŽåIOException - ãã®ä»ã®å
¥åºåãšã©ãŒãçºçããå Žåpublic abstract AsynchronousFileChannel truncate(long size) throws IOException
æå®ããããµã€ãºãçŸåšã®ãã¡ã€ã«ã»ãµã€ãºãããå°ããå Žåããã¡ã€ã«ã®æ«å°Ÿãåãè©°ããããæ°ãããã¡ã€ã«ã®çµããã«åãŸããªããã€ããç Žæ£ãããŸãã æå®ããããµã€ãºãçŸåšã®ãã¡ã€ã«ã»ãµã€ãºãšåãããããããã倧ããå Žåããã¡ã€ã«ã»ãµã€ãºã¯å€æŽãããŸããã
size - æ°ãããµã€ãºãè² ã§ã¯ãªããã€ãæ°NonWritableChannelException - ãã®ãã£ãã«ãæžèŸŒã¿å¯èœã§ãªãå ŽåClosedChannelException - ãã®ãã£ãã«ãã¯ããŒãºããŠããå ŽåIllegalArgumentException - æ°ãããµã€ãºãè² ã®å€ã®å ŽåIOException - ãã®ä»ã®å
¥åºåãšã©ãŒãçºçããå Žåpublic abstract void force(boolean metaData)
throws IOException
ãã®ãã£ãã«ã®ãã¡ã€ã«ãããŒã«ã«ã®èšæ¶è£ 眮äžã«ããå Žåããã®ã¡ãœããã®æ»ãå€ããããã®ãã£ãã«ã®äœææãŸãã¯ãã®ã¡ãœããã®äžçªæè¿ã®åŒåºã以éã®ãã¡ã€ã«ã®å€æŽå 容ããã¹ãŠãã®ããã€ã¹ã«æžã蟌ãŸããŠããããšãããããŸãã ãã®æ¹æ³ã«ãããã·ã¹ãã ãã¯ã©ãã·ã¥ãããšããéèŠãªæ å ±ãæå€±ããä¿è·ã§ããŸãã
äžæ¹ããã¡ã€ã«ãããŒã«ã«ã®èšæ¶è£ 眮äžã«ãªãå ŽåãæžèŸŒã¿ã¯è¡ãããŸããã
metaDataãã©ã¡ãŒã¿ã䜿ã£ãŠããã®ã¡ãœããã§å®è¡ããªããã°ãªããªãå
¥åºåæäœã®æ°ãå¶éã§ããŸãã ãã®ãã©ã¡ãŒã¿ã«falseãæž¡ããå Žåãã¹ãã¬ãŒãžã«æžã蟌ãå¿
èŠãããã®ã¯ããã¡ã€ã«ã®ã³ã³ãã³ãã®æŽæ°å
容ã ãã§ããtrueãæž¡ããå Žåã¯ããã¡ã€ã«ã®ã³ã³ãã³ããšã¡ã¿ããŒã¿ã®äž¡æ¹ã®æŽæ°å
å®¹ãæžã蟌ãå¿
èŠããããŸããããã«ã¯ãéåžž1å以äžã®å
¥åºåæäœãå¿
èŠã§ãã ãã®ãã©ã¡ãŒã¿ã«å®å¹æ§ããããã©ããã¯ãåºç€ãšãªããªãã¬ãŒãã£ã³ã°ã»ã·ã¹ãã ã«ãã£ãŠæ±ºãŸããããæªæå®ã§ãã
ãã®ã¡ãœãããåŒã³åºããšããã£ãã«ãèªèŸŒã¿å°çšã§ãã£ãŠãå ¥åºåæäœãçºçããŸãã ããšãã°ããã¡ã€ã«ã®ã¡ã¿ããŒã¿ãšããŠæçµã¢ã¯ã»ã¹æå»ãä¿åãããã¡ã€ã«ã®èªèŸŒã¿ã®ãã³ã«æŽæ°ãããããªãªãã¬ãŒãã£ã³ã°ã»ã·ã¹ãã ããããŸãã ãã®åŠçãå®éã«è¡ããããã©ããã¯ã·ã¹ãã ã«ãã£ãŠæ±ºãŸããããæªæå®ã§ãã
ãã®ã¡ãœããã¯ããã®ã¯ã©ã¹ã«å®çŸ©ãããã¡ãœããã«ãã£ãŠãã®ãã£ãã«ã®ãã¡ã€ã«ã«å ãããã倿Žã匷å¶ããã ãã§ãã
metaData - trueã®å Žåããã®ã¡ãœããã¯ããã¡ã€ã«ã®ã³ã³ãã³ãããã³ã¡ã¿ããŒã¿ã®äž¡æ¹ã«å¯Ÿãã倿Žãã¹ãã¬ãŒãžã«åŒ·å¶çã«æžã蟌ãå¿
èŠãããããã以å€ã®å Žåã¯ã³ã³ãã³ãã®å€æŽã®ã¿ã匷å¶çã«æžã蟌ãå¿
èŠãããClosedChannelException - ãã®ãã£ãã«ãã¯ããŒãºããŠããå ŽåIOException - ãã®ä»ã®å
¥åºåãšã©ãŒãçºçããå Žåpublic abstract <A> void lock(long position,
long size,
boolean shared,
A attachment,
CompletionHandler<FileLock,? super A> handler)
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åã§ããã¯ãç²åŸããããã®æäœãéå§ããŸãã handlerãã©ã¡ãŒã¿ã¯ãããã¯ãç²åŸããã(ãŸãã¯æäœã倱æãã)ãšãã«åŒã³åºãããçµäºãã³ãã©ã§ãã çµäºãã³ãã©ã«æž¡ãããçµæã¯ãçµæã®FileLockã§ãã
positionãã©ã¡ãŒã¿ãšsizeãã©ã¡ãŒã¿ã§æå®ãããé åããå®éã®åºç€ãšãªããã¡ã€ã«ã«å«ãŸããŠãããããã®ãã¡ã€ã«ãšãªãŒããŒã©ãããããããŠããå¿
èŠã¯ãããŸããã ããã¯é åã®ãµã€ãºã¯åºå®ã§ããåæç¶æ
ã§ã¯ãã¡ã€ã«ã®çµãããããã¯é åå
ã«å«ãŸããŠããŠãããã¡ã€ã«ã»ãµã€ãºããã®é åãã倧ãããªã£ãŠããŸã£ãå Žåãæ°ããéšåã«ã¯ããã¯ãé©çšãããŸããã ãã¡ã€ã«å
šäœã«ããã¯ãé©çšããå¿
èŠãããã«ããããããããã¡ã€ã«ã»ãµã€ãºã倧ãããªãå¯èœæ§ãããå Žåã¯ããŒãããäºæž¬ãããæå€§ãã¡ã€ã«ã»ãµã€ãºä»¥äžãŸã§ã®é åãããã¯ããŸãã åŒæ°ã2ã€ã®lock(Object,CompletionHandler)ã¡ãœããã¯ãåçŽã«ãµã€ãºLong.MAX_VALUEã®é åãããã¯ããŸãã èŠæ±ãããé åããªãŒããŒã©ããããããã¯ããã®Javaä»®æ³ãã·ã³ã«ãã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯ãªãŒããŒã©ããããé åãããã¯ããããã«ãã®ã¡ãœãããåŒã³åºããããã®æäœãå®äºããŠããªãå Žåããã®ã¡ãœããã¯OverlappingFileLockExceptionãã¹ããŒããŸãã
äžéšã®ãªãã¬ãŒãã£ã³ã°ã»ã·ã¹ãã ã§ã¯ãéåæã®æ¹æ³ã§ãã¡ã€ã«ã»ããã¯ãç²åŸããã¡ã«ããºã ã¯ãµããŒããããŸããã ãã®çµæãå®è£ ã¯ãããã¯ã°ã©ãŠã³ãã»ã¹ã¬ããã§ããŸãã¯é¢é£ããã¹ã¬ããã»ããŒã«å ã®ã¹ã¬ããã«ãã£ãŠå®è¡ãããã¿ã¹ã¯ãããã¡ã€ã«ã»ããã¯ãç²åŸããããšããããŸãã æªåŠçã®ããã¯æäœã倿°ãããå Žåãç¡æéã«Javaä»®æ³ãã·ã³ã§ã¹ã¬ãããæ¶è²»ãããå¯èœæ§ããããŸãã
å
±æããã¯ããµããŒãããªããªãã¬ãŒãã£ã³ã°ã»ã·ã¹ãã ã§ã¯ãå
±æããã¯èŠæ±ãæä»ããã¯èŠæ±ã«èªåçã«å€æãããŸãã æ°ããç²åŸããããã¯ãå
±æããã¯ã§ãããæä»ããã¯ã§ãããã¯ãçµæãšããŠåŸãããããã¯ã»ãªããžã§ã¯ãã®isSharedã¡ãœãããåŒã³åºãããšã§å€æã§ããŸãã
ãã¡ã€ã«ã»ããã¯ã¯Javaä»®æ³ãã·ã³å šäœã®ããã«ä¿æãããŸãã ãããã¯ãåäžä»®æ³ãã·ã³å ã®è€æ°ã¹ã¬ããã«ãããã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããã®ã«ã¯é©ããŠããŸããã
A - æ¥ç¶ã®ã¿ã€ãposition - ããã¯é åãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãsize - ããã¯é åã®ãµã€ãºãè² ã§ãªãå€ã§ããå¿
èŠããããŸããposition + sizeãè² ã§ãªãå€ã§ããå¿
èŠããããŸãshared - å
±æããã¯ãèŠæ±ããå Žåã¯trueããã®å Žåããã®ãã£ãã«ã¯èªåãã(å Žåã«ãã£ãŠã¯æžã蟌ã¿ã)å¯èœã§ããå¿
èŠããããŸããæä»ããã¯ãèŠæ±ããå Žåã¯falseããã®å Žåããã®ãã£ãã«ã¯æžèŸŒã¿ã(å Žåã«ãã£ãŠã¯èªåãã)å¯èœã§ããå¿
èŠããããŸãattachment - å
¥åºåæäœã«æ¥ç¶ããããªããžã§ã¯ããnullãå¯handler - çµæãæ¶è²»ããããã®ãã³ãã©OverlappingFileLockException - èŠæ±ãããé åããªãŒããŒã©ããããããã¯ããã®Javaä»®æ³ãã·ã³ã«ãã£ãŠãã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯ãªãŒããŒã©ããããé åãããã¯ããããšããŠããããã©ããŸã ä¿çãããŠããå ŽåIllegalArgumentException - äžèšã®ãã©ã¡ãŒã¿ã®åææ¡ä»¶ãæºããããŠããªãå ŽåNonReadableChannelException - sharedãtrueã§ããããã®ãã£ãã«ãèªåãäžå¯ã§ãã£ãå ŽåNonWritableChannelException - sharedãfalseã§ããããã®ãã£ãã«ãæžèŸŒã¿äžå¯ã§ãã£ãå Žåpublic final <A> void lock(A attachment,
CompletionHandler<FileLock,? super A> handler)
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åã§ããã¯ãç²åŸããããã®æäœãéå§ããŸãã handlerãã©ã¡ãŒã¿ã¯ãããã¯ãç²åŸããã(ãŸãã¯æäœã倱æãã)ãšãã«åŒã³åºãããçµäºãã³ãã©ã§ãã çµäºãã³ãã©ã«æž¡ãããçµæã¯ãçµæã®FileLockã§ãã
ãã®ã¡ãœãããch.lock(att,handler)ã®åœ¢åŒã§åŒã³åºããå Žåãæ¬¡ã®åŒã³åºããšåãçµæãåŸãããŸãã
ch.lock(0L, Long.MAX_VALUE, false, att, handler)
A - æ¥ç¶ã®ã¿ã€ãattachment - å
¥åºåæäœã«æ¥ç¶ããããªããžã§ã¯ããnullãå¯handler - çµæãæ¶è²»ããããã®ãã³ãã©OverlappingFileLockException - ãã®Javaä»®æ³ãã·ã³ã«ãã£ãŠããã¯ããã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯é åãããã¯ããããšããŠããããã©ããŸã ä¿çãããŠããå ŽåNonWritableChannelException - ãã®ãã£ãã«ãæžèŸŒã¿å¯èœã§ãªãå Žåpublic abstract Future<FileLock> lock(long position, long size, boolean shared)
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã¡ã€ã«ã®æå®ãããé åã§ããã¯ãç²åŸããããã®æäœãéå§ããŸãã ãã®ã¡ãœããã¯ãlock(long, long, boolean, Object, CompletionHandler)ã¡ãœãããšãŸã£ããåãããã«åäœããŸãããã ããçµäºãã³ãã©ãæå®ãã代ããã«ããã®ã¡ãœããã¯ä¿çç¶æ
ã®çµæã衚ãFutureãè¿ããŸãã Futureã®getã¡ãœããã¯ãæ£åžžã«å®äºãããšFileLockãè¿ããŸãã
position - ããã¯é åãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãsize - ããã¯é åã®ãµã€ãºãè² ã§ãªãå€ã§ããå¿
èŠããããŸããposition + sizeãè² ã§ãªãå€ã§ããå¿
èŠããããŸãshared - å
±æããã¯ãèŠæ±ããå Žåã¯trueããã®å Žåããã®ãã£ãã«ã¯èªåãã(å Žåã«ãã£ãŠã¯æžã蟌ã¿ã)å¯èœã§ããå¿
èŠããããŸããæä»ããã¯ãèŠæ±ããå Žåã¯falseããã®å Žåããã®ãã£ãã«ã¯æžèŸŒã¿ã(å Žåã«ãã£ãŠã¯èªåãã)å¯èœã§ããå¿
èŠããããŸãFutureãªããžã§ã¯ãOverlappingFileLockException - ãã®Javaä»®æ³ãã·ã³ã«ãã£ãŠããã¯ããã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯é åãããã¯ããããšããŠããããã©ããŸã ä¿çãããŠããå ŽåIllegalArgumentException - äžèšã®ãã©ã¡ãŒã¿ã®åææ¡ä»¶ãæºããããŠããªãå ŽåNonReadableChannelException - sharedãtrueã§ããããã®ãã£ãã«ãèªåãäžå¯ã§ãã£ãå ŽåNonWritableChannelException - sharedãfalseã§ããããã®ãã£ãã«ãæžèŸŒã¿äžå¯ã§ãã£ãå Žåpublic final Future<FileLock> lock()
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã¡ã€ã«äžã§æä»ããã¯ãç²åŸããæäœãéå§ããŸãã ã¡ãœããã¯ãæäœã®ä¿çãããŠããçµæã衚ãFutureãè¿ããŸãã Futureã®getã¡ãœããã¯ãæ£åžžã«å®äºãããšFileLockãè¿ããŸãã
ãã®ã¡ãœããåŒåºãã®åäœã¯ã次ã®åŒåºãã®åäœãšãŸã£ããåäžã§ãã
ch.lock(0L, Long.MAX_VALUE, false)
Futureãªããžã§ã¯ãOverlappingFileLockException - ãã®Javaä»®æ³ãã·ã³ã«ãã£ãŠããã¯ããã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯é åãããã¯ããããšããŠããããã©ããŸã ä¿çãããŠããå ŽåNonWritableChannelException - ãã®ãã£ãã«ãæžèŸŒã¿å¯èœã§ãªãå Žåpublic abstract FileLock tryLock(long position, long size, boolean shared) throws IOException
ãã®ã¡ãœããã¯ãããã¯ãããŸããã ãã®ã¡ãœãããåŒã³åºããšãèŠæ±ãããé åã§ããã¯ãç²åŸããããããã¯ã®ç²åŸã«å€±æãããã瀺ãçµæããã ã¡ã«è¿ãããŸãã ãªãŒããŒã©ããããããã¯ãå¥ã®ããã°ã©ã ã«ãã£ãŠä¿æãããŠããããããã¯ã®ç²åŸã«å€±æããå Žåãnullãè¿ãããŸãã ãã®ä»ã®åå ã§ããã¯ã«å€±æããå Žåã¯ãé©åãªäŸå€ãã¹ããŒãããŸãã
position - ããã¯é åãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãsize - ããã¯é åã®ãµã€ãºãè² ã§ãªãå€ã§ããå¿
èŠããããŸããposition + sizeãè² ã§ãªãå€ã§ããå¿
èŠããããŸãshared - å
±æããã¯ãèŠæ±ããå Žåã¯trueãæä»ããã¯ãèŠæ±ããå Žåã¯falsenullIllegalArgumentException - äžèšã®ãã©ã¡ãŒã¿ã®åææ¡ä»¶ãæºããããŠããªãå ŽåClosedChannelException - ãã®ãã£ãã«ãã¯ããŒãºããŠããå ŽåOverlappingFileLockException - èŠæ±ãããé åããªãŒããŒã©ããããããã¯ããã®Javaä»®æ³ãã·ã³ã«ãã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯ããã®ã¡ãœããå
ã§ãããã¯ãããŠããå¥ã®ã¹ã¬ãããåããã¡ã€ã«ã®ãªãŒããŒã©ããããé åãããã¯ããããšããŠããå ŽåNonReadableChannelException - sharedãtrueã§ããããã®ãã£ãã«ãèªåãäžå¯ã§ãã£ãå ŽåNonWritableChannelException - sharedãfalseã§ããããã®ãã£ãã«ãæžèŸŒã¿äžå¯ã§ãã£ãå ŽåIOException - ãã®ä»ã®å
¥åºåãšã©ãŒãçºçããå Žålock(Object,CompletionHandler), lock(long,long,boolean,Object,CompletionHandler), tryLock()public final FileLock tryLock() throws IOException
ãã®ã¡ãœãããch.tryLock()ã®åœ¢åŒã§åŒã³åºããå Žåãæ¬¡ã®åŒã³åºããšåãçµæãåŸãããŸãã
ch.tryLock(0L, Long.MAX_VALUE, false) nullClosedChannelException - ãã®ãã£ãã«ãã¯ããŒãºããŠããå ŽåOverlappingFileLockException - èŠæ±ãããé åããªãŒããŒã©ããããããã¯ããã®Javaä»®æ³ãã·ã³ã«ãã§ã«ç¢ºä¿ãããŠããå ŽåããŸãã¯ããã®ã¡ãœããå
ã§ãããã¯ãããŠããå¥ã®ã¹ã¬ããããªãŒããŒã©ããããé åãããã¯ããããšããŠããå ŽåNonWritableChannelException - sharedãfalseã§ããããã®ãã£ãã«ãæžèŸŒã¿äžå¯ã§ãã£ãå ŽåIOException - ãã®ä»ã®å
¥åºåãšã©ãŒãçºçããå Žålock(Object,CompletionHandler), lock(long,long,boolean,Object,CompletionHandler), tryLock(long,long,boolean)public abstract <A> void read(ByteBuffer dst, long position, A attachment, CompletionHandler<Integer,? super A> handler)
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã€ãã»ã·ãŒã±ã³ã¹ã®ãæå®ããããã¡ã€ã«äœçœ®ããæå®ããããããã¡ãžã®èªåããéå§ããŸãã èªåãã®çµæã¯ãèªã¿åããããã€ãæ°ã§ãããããŸãã¯èªã¿åãããšããæç¹ã§ãæå®ãããäœçœ®ããã¡ã€ã«ã®ãµã€ãºä»¥äžã§ããå Žåã¯-1ã§ãã
ãã®ã¡ãœããã¯ããã€ããæå®ããããã¡ã€ã«äœçœ®ããèªã¿åããããšããç¹ãé€ãã°ãAsynchronousByteChannel.read(ByteBuffer,Object,CompletionHandler)ã¡ãœãããšåãã§ãã èªã¿åãããšããæç¹ã§ãæå®ããããã¡ã€ã«äœçœ®ããã¡ã€ã«ã®ãµã€ãºãã倧ããå Žåããã€ãã¯èªã¿åãããŸããã
A - æ¥ç¶ã®ã¿ã€ãdst - ãã€ãã®è»¢éå
ãããã¡position - 転éãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãattachment - å
¥åºåæäœã«æ¥ç¶ããããªããžã§ã¯ããnullãå¯handler - çµæãæ¶è²»ããããã®ãã³ãã©IllegalArgumentException - positionãè² ã§ãããããŸãã¯ãããã¡ãèªåãå°çšã®å ŽåNonReadableChannelException - ãã®ãã£ãã«ãèªåãå¯èœã§ãªãå Žåpublic abstract Future<Integer> read(ByteBuffer dst, long position)
ãã®ã¡ãœããã¯ããã®ãã£ãã«ã®ãã€ãã»ã·ãŒã±ã³ã¹ã®ãæå®ããããã¡ã€ã«äœçœ®ããæå®ããããããã¡ãžã®èªåããéå§ããŸãã ãã®ã¡ãœããã¯ãæäœã®ä¿çãããŠããçµæã衚ãFutureãè¿ããŸãã Futureã®getã¡ãœããã¯ãèªã¿åããããã€ãæ°ã§ãããããŸãã¯èªã¿åãããšããæç¹ã§ãæå®ãããäœçœ®ããã¡ã€ã«ã®ãµã€ãºä»¥äžã§ããå Žåã¯-1ã§ãã
ãã®ã¡ãœããã¯ããã€ããæå®ããããã¡ã€ã«äœçœ®ããèªã¿åããããšããç¹ãé€ãã°ãAsynchronousByteChannel.read(ByteBuffer)ã¡ãœãããšåãã§ãã èªã¿åãããšããæç¹ã§ãæå®ããããã¡ã€ã«äœçœ®ããã¡ã€ã«ã®ãµã€ãºãã倧ããå Žåããã€ãã¯èªã¿åãããŸããã
dst - ãã€ãã®è»¢éå
ãããã¡position - 転éãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãFutureãªããžã§ã¯ãIllegalArgumentException - positionãè² ã§ãããããŸãã¯ãããã¡ãèªåãå°çšã®å ŽåNonReadableChannelException - ãã®ãã£ãã«ãèªåãå¯èœã§ãªãå Žåpublic abstract <A> void write(ByteBuffer src, long position, A attachment, CompletionHandler<Integer,? super A> handler)
ãã®ã¡ãœããã¯ããã€ããæå®ããããã¡ã€ã«äœçœ®ããæžã蟌ãŸãããšããç¹ãé€ãã°ãAsynchronousByteChannel.write(ByteBuffer,Object,CompletionHandler)ã¡ãœãããšåãã§ãã æžã蟌ãããšããæç¹ã§ãæå®ãããäœçœ®ããã¡ã€ã«ã®ãµã€ãºãã倧ããå Žåããã¡ã€ã«ã¯æ°ãããã€ãã«åãããŠå€§ãããªããŸãã以åã®ãã¡ã€ã«ã®çµãããšæ°ããæžã蟌ãŸãããã€ãã®éã®ãã€ãã®å€ã¯æªæå®ã§ãã
A - æ¥ç¶ã®ã¿ã€ãsrc - ãã€ãã®è»¢éå
ãããã¡position - 転éãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãattachment - å
¥åºåæäœã«æ¥ç¶ããããªããžã§ã¯ããnullãå¯handler - çµæãæ¶è²»ããããã®ãã³ãã©IllegalArgumentException - äœçœ®ãè² ã®å€ã®å ŽåNonWritableChannelException - ãã®ãã£ãã«ãæžèŸŒã¿å¯èœã§ãªãå Žåpublic abstract Future<Integer> write(ByteBuffer src, long position)
ãã®ã¡ãœããã¯ããã€ãã»ã·ãŒã±ã³ã¹ã®ãæå®ããããã¡ã€ã«äœçœ®ã®æå®ã®ãããã¡ãããã®ãã£ãã«ãžã®æžèŸŒã¿ãéå§ããŸãã ã¡ãœããã¯ãæžèŸŒã¿æäœã®ä¿çãããŠããçµæã衚ãFutureãè¿ããŸãã Futureã®getã¡ãœããã¯æžã蟌ãŸãããã€ãæ°ãè¿ããŸãã
ãã®ã¡ãœããã¯ããã€ããæå®ããããã¡ã€ã«äœçœ®ããæžã蟌ãŸãããšããç¹ãé€ãã°ãAsynchronousByteChannel.write(ByteBuffer)ã¡ãœãããšåãã§ãã æžã蟌ãããšããæç¹ã§ãæå®ãããäœçœ®ããã¡ã€ã«ã®ãµã€ãºãã倧ããå Žåããã¡ã€ã«ã¯æ°ãããã€ãã«åãããŠå€§ãããªããŸãã以åã®ãã¡ã€ã«ã®çµãããšæ°ããæžã蟌ãŸãããã€ãã®éã®ãã€ãã®å€ã¯æªæå®ã§ãã
src - ãã€ãã®è»¢éå
ãããã¡position - 転éãéå§ããããã¡ã€ã«äœçœ®ãè² ã§ãªãå€ã§ããå¿
èŠããããŸãFutureãªããžã§ã¯ãIllegalArgumentException - äœçœ®ãè² ã®å€ã®å ŽåNonWritableChannelException - ãã®ãã£ãã«ãæžèŸŒã¿å¯èœã§ãªãå Žå ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã