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

クラスChannels

java.lang.Object
java.nio.channels.Channels

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

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

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

    • newInputStream

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

      結果のストリームのreadおよびtransferToメソッドは、基礎となるチャネルが非ブロッキング・モードであるときに起動された場合、IllegalBlockingModeExceptionをスローします。 transferToメソッドは、非ブロッキング・モードで基礎となるチャネルに書込みを行う出力ストリームにバイトを転送するために呼び出された場合も、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 - 内部バイト・バッファの最小容量。実装依存のデフォルト容量を使用する場合は-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.newDecoder(), -1)
      

      不正な入力およびマッピング不可能な文字エラーに対するリーダーのデフォルトのアクションは、reportです。 エラー処理をより詳細に制御する必要がある場合は、CharsetDecoderを使用するコンストラクタを使用する必要があります。

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

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

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

      パラメータ:
      ch - バイトが書き込まれるチャネル
      enc - 使用する文字セット・エンコーダ
      minBufferCap - 内部バイト・バッファの最小容量。実装依存のデフォルト容量を使用する場合は-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.newEncoder(), -1)
      

      不正な入力エラーおよびマップ不可文字エラーに対するライターのデフォルト・アクションは、reportです。 エラー処理をより詳細に制御する必要がある場合は、CharsetEncoderを使用するコンストラクタを使用する必要があります。

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