パッケージjavax.imageio.stream
ImageInputStreamインタフェースにより、ストリーミングとファイルベースの操作が統合されます。 抽象基底クラスImageInputStreamImplの目的は、新しいImageInputStreamクラスの書込みを単純化することです。 具象実装クラス(FileImageInputStream、FileCacheImageInputStream、およびMemoryCacheImageInputStream)を使用することにより、一時キャッシュ・ファイルを使用するかどうかに関係なく、FileまたはInputStreamからの入力が可能になります。
ImageOutputStreamインタフェースにより、出力と同様の機能が実行されます。 抽象基底クラスImageOutputStreamImplおよび具象実装クラス(FileImageOutputStream、FileCacheImageOutputStream、およびMemoryCacheImageOutputStream)が提供されます。具象実装クラスを使用することにより、一時キャッシュ・ファイルを使用するかどうかに関係なく、FileまたはOutputStreamに出力を書き込むことができます。
IIOByteBufferクラスによりバイト・シーケンスを読み込む代替手段が提供されるため、内部データのコピー量が少なくなります。
ImageInputStreamまたはImageOutputStreamは、システム・リソース(一時キャッシュ・ファイルなど)を内部的に割り当てることができます。 クライアントはtry-with-resources文を使用して、ImageInputStream.close()またはImageInputStream.close()メソッドが呼び出され、これらのネイティブ・リソースがすぐに解放されるようにすることをお薦めします。 そうしないと、リークが発生する可能性があり、最終的にアプリケーションが失敗し、すべてのデータが基礎となる出力ストリームにフラッシュされない可能性があります。 論理的な結果として、宛先 OutputStreamを閉じる前にこれを行う必要があります。 単純なパターンは
try (FileOutputStream fos = new FileOutputStream("out.jpg");
ImageOutputStream ios = new FileCacheImageOutputStream(fos, null)) {
ImageIO.write(img, "jpg", ios);
} catch (IOException e) {
} // implicit finally block closes the streams in the reverse order to opening
これらのイメージI/O APIストリーム・タイプのサブクラスは、アクセスできなくなったときに内部リソースを解放するCleanerなどのメカニズムを採用することで、障害からクローズまでの影響からアプリケーションを保護できます。 これは、リリースするリソースがある場合にのみ必要です。 ただし、アプリケーションは、リソース管理またはプログラムの正確性のために、これに依存できません。
- 導入されたバージョン:
- 1.4
-
クラス説明通常の
InputStreamから入力を取得するImageInputStreamの実装です。出力を通常のOutputStreamに書き込むImageOutputStreamの実装です。FileまたはRandomAccessFileから入力を取得するImageInputStreamの実装です。出力をFileまたはRandomAccessFileに直接書き込むImageOutputStreamの実装です。バイト配列およびその配列内のオフセットと長さの変更可能な参照を表現するクラスです。ImageReaderで使用されるシーク可能な入力ストリーム・インタフェースです。ImageInputStreamインタフェースを実装する抽象クラスです。ImageWriterで使用されるシーク可能な出力ストリーム・インタフェースです。ImageOutputStreamインタフェースを実装する抽象クラスです。通常のInputStreamから入力を取得するImageInputStreamの実装です。出力を通常のOutputStreamに書き込むImageOutputStreamの実装です。