JavaTM Platform
Standard Ed. 6

java.nio.channels
인터페이스 WritableByteChannel

모든 슈퍼 인터페이스:
Channel , Closeable
기존의 서브 인터페이스의 일람:
ByteChannel , GatheringByteChannel
기존의 구현 클래스의 일람:
DatagramChannel , FileChannel , Pipe.SinkChannel , SocketChannel


public interface WritableByteChannel
extends Channel

바이트를 기입할 수가 있는 채널입니다.

기입해 가능한 채널상에서, 병행해 복수의 기입 조작을 실행할 수 없습니다. 채널상에서 기입해 조작을 개시한 thread가 있는 경우, 새로운 기입해 조작을 개시하려고 하는 그 외의 thread는, 최초의 조작이 완료할 때까지 블록 됩니다. 기입 조작과 그 외의 입출력 조작을 동시 병행으로 실행할 수 있을지 어떨지는, 채널의 종류에 의해 정해집니다.

도입된 버젼:
1.4

메소드의 개요
 int write (ByteBuffer  src)
          이 채널의 바이트 순서를 지정의 버퍼로부터 써냅니다.
 
인터페이스 java.nio.channels. Channel 로부터 상속된 메소드
close , isOpen
 

메소드의 상세

write

int write(ByteBuffer  src)
          throws IOException 
이 채널의 바이트 순서를 지정의 버퍼로부터 써냅니다.

채널에 최대 r 바이트를 기입하려고 합니다. r 는, 이 메소드를 호출할 때 버퍼내에 존재하는 바이트수,src.remaining() 가 됩니다.

길이 n (0 <= n <= r)의 바이트 순서가 기입해진다고 합니다. 이 바이트 순서는, 버퍼의 인덱스 p 로부터 전송 됩니다. p 는, 이 메소드를 호출할 때의 버퍼의 위치입니다. 기입해지는 마지막 바이트의 인덱스는 p + n - 1 이 됩니다. 버퍼의 위치는, 돌려주어질 때 p + n 에 동일해집니다. 리밋트에 변화는 없습니다.

특히 지정이 없는 한, 요구된 r 바이트가 모두 기입해지면(자) 기입 조작은 종료합니다. 채널의 종류에 따라서는, 그 상태에 응해, 일부의 바이트 밖에 기입해지지 않은 경우나, 전혀 기입을 하지 않는 경우도 있습니다. 예를 들어 비블록 모드의 소켓 채널에서는, 소켓의 출력 버퍼내의 바이트수가 최대 기입 바이트수가 됩니다.

이 메소드는 언제라도 호출할 수가 있습니다. 다만, 다른 thread가 이 채널에 대해서 기입해 조작을 개시하고 있는 경우, 이 메소드의 호출은 최초의 조작이 끝날 때까지 블록 됩니다.

파라미터:
src - 바이트의 취득처 버퍼
반환값:
기입해지는 바이트수. 제로의 경우도 있다
예외:
NonWritableChannelException - 이 채널이 기입해 가능하지 않은 경우
ClosedChannelException - 이 채널이 클로즈 하고 있는 경우
AsynchronousCloseException - 기입중에 다른 thread에 의해 이 채널이 클로즈 되었을 경우
ClosedByInterruptException - 기입중에 다른 thread로부터의 인터럽트가 있었기 때문에 채널이 클로즈 해, 현재의 thread의 인터럽트 상태가 설정되었을 경우
IOException - 그 외의 입출력 에러가 발생했을 경우

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.