JavaTM 2 Platform
Standard Ed. 5.0

java.nio.channels
インタフェース WritableByteChannel

すべてのスーパーインタフェース:
Channel, Closeable
既知のサブインタフェースの一覧:
ByteChannel, GatheringByteChannel
既知の実装クラスの一覧:
DatagramChannel, FileChannel, Pipe.SinkChannel, SocketChannel

public interface WritableByteChannel
extends Channel

バイトを書き込むことができるチャネルです。

書き込み可能なチャネル上で、同時に複数の書き込み操作を実行することはできません。チャネル上で書き込み操作を開始したスレッドがある場合、新たな書き込み操作を開始しようとするその他のスレッドは、最初の操作が完了するまでブロックされます。書き込み操作とその他の入出力操作を同時並行で実行できるかどうかは、チャネルの種類によって決まります。

導入されたバージョン:
1.4

メソッドの概要
 int write(ByteBuffer src)
          このチャネルのバイトシーケンスを指定のバッファから書き出します。
 
インタフェース java.nio.channels.Channel から継承されたメソッド
close, isOpen
 

メソッドの詳細

write

int write(ByteBuffer src)
          throws IOException
このチャネルのバイトシーケンスを指定のバッファから書き出します。

チャネルへ最大 r バイトを書き込もうとします。r は、このメソッドを呼び出すときにバッファ内に存在するバイト数、dst.remaining() になります。

長さ n (0 <= n <= r) のバイトシーケンスが書き込まれるとします。このバイトシーケンスはバッファのインデックス p から転送されます。p は、このメソッドを呼び出した時点のバッファの位置です。書き込まれる最後のバイトは p + n - 1 になります。バッファの位置は、終了時に p + n に等しくなります。リミットに変化はありません。

特に指定がないかぎり、要求された r バイトがすべて書き込まれると書き込み操作は終了します。チャネルの種類によっては、その状態に応じて、一部のバイトしか書き込まれない場合や、まったく書き込みが行われない場合もあります。たとえば非ブロックモードのソケットチャネルでは、ソケットの出力バッファ内のバイト数が最大書き込みバイト数になります。

このメソッドはいつでも呼び出せます。ただし、ほかのスレッドがこのチャネルに対して書き込み操作を開始している場合、このメソッドの呼び出しは最初の操作が終わるまでブロックされます。

パラメータ:
src - バイトの取得先バッファ
戻り値:
書き込まれるバイト数。ゼロの場合もある
例外:
NonWritableChannelException - このチャネルが書き込み可能でない場合
ClosedChannelException - このチャネルがクローズしている場合
AsynchronousCloseException - 書き込み中に別のスレッドによってこのチャネルがクローズされた場合
ClosedByInterruptException - 書き込み中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込み状態が設定された場合
IOException - その他の入出力エラーが発生した場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。