モジュール java.base
パッケージ java.nio.channels

クラスChannels


  • public final class Channels
    extends Object
    チャネルとストリームのためのユーティリティ・メソッドです。

    このクラスは、java.ioパッケージのストリーム・クラスとこのパッケージのチャネル・クラスの相互運用をサポートする静的メソッドを定義します。

    導入されたバージョン:
    1.4
    • メソッドの詳細

      • newInputStream

        public static InputStream newInputStream​(ReadableByteChannel ch)
        指定されたチャネルからバイトを読み取るストリームを構築します。

        結果として得られるストリームのreadメソッドは、基本となるチャネルが非ブロック・モードである場合に呼び出されると、IllegalBlockingModeExceptionをスローします。 ストリームはバッファされず、markメソッドもresetメソッドもサポートしません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが読み取られるチャネル
        戻り値:
        新しい入力ストリーム
      • newOutputStream

        public static OutputStream newOutputStream​(WritableByteChannel ch)
        指定されたチャネルへバイトを書き込むストリームを構築します。

        結果として得られるストリームのwriteメソッドは、基本となるチャネルが非ブロック・モードである場合に呼び出されると、IllegalBlockingModeExceptionをスローします。 ストリームはバッファに書き込まれません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが書き込まれるチャネル
        戻り値:
        新しい出力ストリーム
      • newInputStream

        public static InputStream newInputStream​(AsynchronousByteChannel ch)
        指定されたチャネルからバイトを読み取るストリームを構築します。

        ストリームはバッファされず、markメソッドもresetメソッドもサポートしません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが読み取られるチャネル
        戻り値:
        新しい入力ストリーム
        導入されたバージョン:
        1.7
      • newOutputStream

        public static OutputStream newOutputStream​(AsynchronousByteChannel ch)
        指定されたチャネルへバイトを書き込むストリームを構築します。

        ストリームはバッファに書き込まれません。 ストリームは複数の並行スレッドからのアクセスに対して安全です。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが書き込まれるチャネル
        戻り値:
        新しい出力ストリーム
        導入されたバージョン:
        1.7
      • newChannel

        public static ReadableByteChannel newChannel​(InputStream in)
        指定されたストリームからバイトを読み取るチャネルを構築します。

        結果として得られるチャネルはバッファされず、指定されたストリームに入出力操作をリダイレクトします。 チャネルをクローズするとストリームもクローズします。

        パラメータ:
        in - バイトの読込み先ストリーム
        戻り値:
        新しい読込み可能なバイト・チャネル
      • newChannel

        public static WritableByteChannel newChannel​(OutputStream out)
        指定されたストリームへバイトを書き込むチャネルを構築します。

        結果として得られるチャネルはバッファされず、指定されたストリームに入出力操作をリダイレクトします。 チャネルをクローズするとストリームもクローズします。

        パラメータ:
        out - バイトの書込み先ストリーム
        戻り値:
        新しい書込み可能なバイト・チャネル
      • newReader

        public static Reader newReader​(ReadableByteChannel ch,
                                       CharsetDecoder dec,
                                       int minBufferCap)
        指定されたデコーダを使って指定されたチャネルからバイトをデコードするリーダーを構築します。

        結果として得られるストリームには、minBufferCapバイト以上の内部入力バッファが含まれています。 ストリームのreadメソッドは、必要に応じて基礎となるチャネルからバイトを読み込み、バッファに入れます。バイトの読込み時にチャネルが非ブロック・モードになっていると、IllegalBlockingModeExceptionがスローされます。 結果として得られるストリームはそれ以外の点ではバッファされず、markメソッドもresetメソッドもサポートされません。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが読み取られるチャネル
        dec - 使用する文字セット・デコーダ
        minBufferCap - 内部byteバッファの最小容量。または、実装に依存するデフォルトの容量を使用する場合は-1
        戻り値:
        新しいリーダー
      • newReader

        public static Reader newReader​(ReadableByteChannel ch,
                                       String csName)
        指定文字セットに従って指定されたチャネルからバイトをデコードするリーダーを構築します。

        次のフォームのメソッド呼出しは、

         
             Channels.newReader(ch, csname)
          
        上記のメソッドは、次の表現と同様に動作します。
         
             Channels.newReader(ch, Charset.forName(csName))
          
        パラメータ:
        ch - バイトが読み取られるチャネル
        csName - 使用する文字セットの名前
        戻り値:
        新しいリーダー
        例外:
        UnsupportedCharsetException - 指定された文字セットが現在のJava仮想マシンでは利用できない場合
      • newReader

        public static Reader newReader​(ReadableByteChannel ch,
                                       Charset charset)
        指定されたcharsetに従って、指定されたチャネルのバイトをデコードするリーダーを構築します。

        次のフォームのメソッド呼出しは、

         
             Channels.newReader(ch, charset)
          
        上記のメソッドは、次の表現と同様に動作します。
         
             Channels.newReader(ch, Charset.forName(csName).newDecoder(), -1)
          

        読者の誤った入力文字やマップできない文字のエラーのデフォルトの動作は、それらをreportすることです。 エラー処理をより詳細に制御する必要がある場合は、CharsetDecoderを使用するコンストラクタを使用する必要があります。

        パラメータ:
        ch - バイトが読み取られるチャネル
        charset - 使用される文字セット
        戻り値:
        新しいリーダー
      • newWriter

        public static Writer newWriter​(WritableByteChannel ch,
                                       CharsetEncoder enc,
                                       int minBufferCap)
        指定されたエンコーダを使って文字をエンコードし、結果として得られるバイトを指定されたチャネルに書き込むライターを構築します。

        結果として得られるストリームには、minBufferCapバイト以上の内部出力バッファが含まれています。 ストリームのwriteメソッドは、必要に応じて基礎となるチャネルにバイトを書き込み、バッファをフラッシュします。バイトの書込み時にチャネルが非ブロック・モードになっていると、IllegalBlockingModeExceptionがスローされます。 結果として得られるストリームは、それ以外の点ではバッファされません。 ストリームをクローズするとチャネルもクローズします。

        パラメータ:
        ch - バイトが書き込まれるチャネル
        enc - 使用する文字セット・エンコーダ
        minBufferCap - 内部byteバッファの最小容量。または、実装に依存するデフォルトの容量を使用する場合は-1
        戻り値:
        新しいライター
      • newWriter

        public static Writer newWriter​(WritableByteChannel ch,
                                       String csName)
        指定文字セットに従って文字をエンコードし、結果として得られるバイトを指定されたチャネルに書き込むライターを構築します。

        次のフォームのメソッド呼出しは、

         
             Channels.newWriter(ch, csname)
          
        上記のメソッドは、次の表現と同様に動作します。
         
             Channels.newWriter(ch, Charset.forName(csName))
          
        パラメータ:
        ch - バイトが書き込まれるチャネル
        csName - 使用する文字セットの名前
        戻り値:
        新しいライター
        例外:
        UnsupportedCharsetException - 指定された文字セットが現在のJava仮想マシンでは利用できない場合
      • newWriter

        public static Writer newWriter​(WritableByteChannel ch,
                                       Charset charset)
        指定された文字セットに従って文字を符号化し、結果のバイトを指定されたチャネルに書き込むライターを構築します。

        次のフォームのメソッド呼出しは、

         
             Channels.newWriter(ch, charset)
          
        上記のメソッドは、次の表現と同様に動作します。
         
             Channels.newWriter(ch, Charset.forName(csName).newEncoder(), -1)
          

        誤った入力エラーやマップできない文字エラーに対するライターのデフォルトのアクションは、それらをreportすることです。 エラー処理をより詳細に制御する必要がある場合は、CharsetEncoderを使用するコンストラクタを使用する必要があります。

        パラメータ:
        ch - バイトが書き込まれるチャネル
        charset - 使用される文字セット
        戻り値:
        新しいライター