|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface GatheringByteChannel
버퍼 순서로부터 바이트를 기입할 수가 있는 채널입니다.
이 「수집」기입 조작에서는, 1 회의 호출로, 지정한 1 개(살) 이상의 버퍼 순서에, 연속하는 복수의 바이트 (바이트 순서)를 기입할 수가 있습니다. 「수집」기입은, 일반적으로, 네트워크 프로토콜이나 파일 형식 (예를 들어, 데이터를 1 개 이상의 고정장의 헤더와 가변 길이의 본체로부터 완성되는 세그먼트(segment)에 그룹화 하는 것 같은 파일 형식)을 구현할 때에 편리합니다. 같은 「분산」읽기 조작은,ScatteringByteChannel
인터페이스에 정의되고 있습니다.
메소드의 개요 | |
---|---|
long |
write (ByteBuffer [] srcs)
이 채널의 바이트 순서가 지정된 버퍼로부터 써냅니다. |
long |
write (ByteBuffer [] srcs,
int offset,
int length)
이 채널의 바이트 순서가 지정된 버퍼의 서브 순서로부터 써냅니다. |
인터페이스 java.nio.channels. WritableByteChannel 로부터 상속된 메소드 |
---|
write |
인터페이스 java.nio.channels. Channel 로부터 상속된 메소드 |
---|
close , isOpen |
메소드의 상세 |
---|
long write(ByteBuffer [] srcs, int offset, int length) throws IOException
이 채널에 최대 r 바이트를 기입하려고 합니다. r 는, 이 메소드의 호출시로 지정된 버퍼 배열의 지정된 서브 순서에 포함되는 합계 바이트수입니다.
srcs[offset]. remaining() + srcs[offset+1]. remaining() + ... + srcs[offset+length-1]. remaining()
길이 n (0 <= n <= r)의 바이트 순서가 기입해진다고 합니다. 이 순서의 최초의 srcs[offset]. remaining() 바이트까지는 버퍼 srcs[offset] 로부터 기입해져 다음의 srcs[offset+1]. remaining() 바이트는 버퍼 srcs[offset+1] 로부터 기입해집니다. 바이트 순서 전부가 기입해질 때까지, 이 처리가 반복해집니다. 각 버퍼로부터 최대한의 바이트수가 기입해지기 (위해)때문에, 갱신된 개개의 버퍼의 최종적인 위치는, 최종 갱신 버퍼를 제외해, 이 버퍼의 리밋트와 동일해집니다.
특히 지정이 없는 한, 요구된 r 바이트가 모두 기입해지면(자) 기입 조작은 종료합니다. 채널의 종류에 따라서는, 그 상태에 응해, 일부의 바이트 밖에 기입해지지 않은 경우나, 전혀 기입을 하지 않는 경우도 있습니다. 예를 들어 비블록 모드의 소켓 채널에서는, 소켓의 출력 버퍼내의 바이트수가 최대 기입 바이트수가 됩니다.
이 메소드는 언제라도 호출할 수가 있습니다. 다만, 다른 thread가 이 채널에 대해서 기입해 조작을 개시하고 있는 경우, 이 메소드의 호출은 최초의 조작이 끝날 때까지 블록 됩니다.
srcs
- 바이트의 취득처 버퍼offset
- 최초의 바이트의 취득처가 되는 버퍼 배열내의 오프셋(offset). srcs.length 이하의 부가 아닌 값length
- 액세스 되는 최대 버퍼수.
srcs.length - offset 이하의 부가 아닌 값
IndexOutOfBoundsException
- offset 파라미터와 length 파라미터의 전제 조건이 채워지지 않은 경우
NonWritableChannelException
- 이 채널이 기입해 가능하지 않은 경우
ClosedChannelException
- 이 채널이 클로즈 하고 있는 경우
AsynchronousCloseException
- 기입중에 다른 thread에 의해 이 채널이 클로즈 되었을 경우
ClosedByInterruptException
- 기입 조작의 진행중에 다른 thread로부터의 인터럽트가 있었기 때문에 채널이 클로즈 해,
현재의 thread의 인터럽트 상태가 설정되었을 경우
IOException
- 그 외의 입출력 에러가 발생했을 경우long write(ByteBuffer [] srcs) throws IOException
이 메소드를 c.write(srcs) 의 형식에서 호출했을 경우, 다음의 호출과 같은 결과를 얻을 수 있습니다.
c.write(srcs, 0, srcs.length);
srcs
- 바이트의 취득처 버퍼
NonWritableChannelException
- 이 채널이 기입해 가능하지 않은 경우
ClosedChannelException
- 이 채널이 클로즈 하고 있는 경우
AsynchronousCloseException
- 기입중에 다른 thread에 의해 이 채널이 클로즈 되었을 경우
ClosedByInterruptException
- 기입 조작의 진행중에 다른 thread로부터의 인터럽트가 있었기 때문에 채널이 클로즈 해,
현재의 thread의 인터럽트 상태가 설정되었을 경우
IOException
- 그 외의 입출력 에러가 발생했을 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.