JavaTM 2 Platform
Standard Ed. 5.0

javax.imageio.stream
クラス ImageOutputStreamImpl

java.lang.Object
  上位を拡張 javax.imageio.stream.ImageInputStreamImpl
      上位を拡張 javax.imageio.stream.ImageOutputStreamImpl
すべての実装されたインタフェース:
DataInput, DataOutput, ImageInputStream, ImageOutputStream
直系の既知のサブクラス:
FileCacheImageOutputStream, FileImageOutputStream, MemoryCacheImageOutputStream

public abstract class ImageOutputStreamImpl
extends ImageInputStreamImpl
implements ImageOutputStream

ImageOutputStream インタフェースを実装する抽象クラスです。このクラスの目的は、サブクラスで実装する必要のあるメソッドの数を減らすことです。


フィールドの概要
 
クラス javax.imageio.stream.ImageInputStreamImpl から継承されたフィールド
bitOffset, byteOrder, flushedPos, streamPos
 
コンストラクタの概要
ImageOutputStreamImpl()
          ImageOutputStreamImpl を構築します。
 
メソッドの概要
protected  void flushBits()
          ビットオフセットがゼロでない場合、現在のバイトの残りのビットを強制的に 0 にして、ストリーム位置を 1 だけ増加します。
 void write(byte[] b)
          出力ストリームに配列 b のすべてのバイトを書き込みます。
abstract  void write(byte[] b, int off, int len)
          配列 b から len バイトを順番に出力ストリームに書き込みます。
abstract  void write(int b)
          引数 b の下位 8 ビットを出力ストリームに書き込みます。
 void writeBit(int bit)
          引数の最下位ビットで指定された 1 ビットを、ストリームの現在のバイト位置の現在のビットオフセットに書き込みます。
 void writeBits(long bits, int numBits)
          bits 引数の下位 numBits ビットのビットシーケンスを左から右に、ストリームの現在のバイト位置の現在のビットオフセットに書き込みます。
 void writeBoolean(boolean v)
          1 つの boolean 値を出力ストリームに書き込みます。
 void writeByte(int v)
          引数 v の下位 8 ビットを出力ストリームに書き込みます。
 void writeBytes(String s)
          文字列を出力ストリームに書き込みます。
 void writeChar(int v)
          2 バイトから構成される char 値を出力ストリームに書き込みます。
 void writeChars(char[] c, int off, int len)
          char のシーケンスをストリームの現在位置に書き込みます。
 void writeChars(String s)
          文字列 s 内の各文字を、1 文字ごとに 2 バイトずつ順番に書き込みます。
 void writeDouble(double v)
          8 バイトから構成される double 値を出力ストリームに書き込みます。
 void writeDoubles(double[] d, int off, int len)
          double のシーケンスをストリームの現在位置に書き込みます。
 void writeFloat(float v)
          4 バイトから構成される float 値を出力ストリームに書き込みます。
 void writeFloats(float[] f, int off, int len)
          float のシーケンスをストリームの現在位置に書き込みます。
 void writeInt(int v)
          4 バイトから構成される int 値を出力ストリームに書き込みます。
 void writeInts(int[] i, int off, int len)
          int のシーケンスをストリームの現在位置に書き込みます。
 void writeLong(long v)
          8 バイトから構成される long 値を出力ストリームに書き込みます。
 void writeLongs(long[] l, int off, int len)
          long のシーケンスをストリームの現在位置に書き込みます。
 void writeShort(int v)
          引数の値を表す 2 バイトを出力ストリームに書き込みます。
 void writeShorts(short[] s, int off, int len)
          short のシーケンスをストリームの現在位置に書き込みます。
 void writeUTF(String s)
          長さ情報の 2 バイトを出力ストリームに書き込みます。
 
クラス javax.imageio.stream.ImageInputStreamImpl から継承されたメソッド
checkClosed, close, finalize, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, read, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.imageio.stream.ImageOutputStream から継承されたメソッド
flushBefore
 
インタフェース javax.imageio.stream.ImageInputStream から継承されたメソッド
close, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, length, mark, read, read, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
 

コンストラクタの詳細

ImageOutputStreamImpl

public ImageOutputStreamImpl()
ImageOutputStreamImpl を構築します。

メソッドの詳細

write

public abstract void write(int b)
                    throws IOException
インタフェース DataOutput の記述:
引数 b の下位 8 ビットを出力ストリームに書き込みます。b の上位 24 ビットについては無視されます。

定義:
インタフェース DataOutput 内の write
定義:
インタフェース ImageOutputStream 内の write
パラメータ:
b - 書き込むバイト
例外:
IOException - 入出力エラーが発生した場合

write

public void write(byte[] b)
           throws IOException
インタフェース DataOutput の記述:
出力ストリームに配列 b のすべてのバイトを書き込みます。bnull の場合、NullPointerException がスローされます。b.length がゼロの場合、書き込まれるバイトはありません。そうでない場合は、まずバイト b[0]、次に b[1] と順次書き込まれ、最後にバイト b[b.length-1] が書き込まれます。

定義:
インタフェース DataOutput 内の write
定義:
インタフェース ImageOutputStream 内の write
パラメータ:
b - データ
例外:
IOException - 入出力エラーが発生した場合

write

public abstract void write(byte[] b,
                           int off,
                           int len)
                    throws IOException
インタフェース DataOutput の記述:
配列 b から len バイトを順番に出力ストリームに書き込みます。bnull の場合は、NullPointerException がスローされます。off が負の値の場合、len が負の値の場合、あるいは off+len が配列 b の長さより大きい場合には、IndexOutOfBoundsException がスローされます。len がゼロの場合、書き込まれるバイトはありません。そうでない場合は、まずバイト b[off]、次に b[off+1] と順次書き込まれ、最後にバイト b[off+len-1] が書き込まれます。

定義:
インタフェース DataOutput 内の write
定義:
インタフェース ImageOutputStream 内の write
パラメータ:
b - データ
off - データの開始オフセット
len - 書き込むバイト数
例外:
IOException - 入出力エラーが発生した場合

writeBoolean

public void writeBoolean(boolean v)
                  throws IOException
インタフェース DataOutput の記述:
1 つの boolean 値を出力ストリームに書き込みます。引数 vtrue の場合は、値 (byte)1 が書き込まれます。vfalse の場合は、値 (byte)0 が書き込まれます。このメソッドが書き込むバイトは、DataInput インタフェースの readBoolean メソッドによって読み込まれます。次に、readBoolean メソッドにより、v に等しい boolean が返されます。

定義:
インタフェース DataOutput 内の writeBoolean
定義:
インタフェース ImageOutputStream 内の writeBoolean
パラメータ:
v - 書き込まれる boolean
例外:
IOException - 入出力エラーが発生した場合

writeByte

public void writeByte(int v)
               throws IOException
インタフェース DataOutput の記述:
引数 v の下位 8 ビットを出力ストリームに書き込みます。v の上位 24 ビットは無視されます。つまり、writeByte の動作は、整数型引数の場合は write とまったく同じです。このメソッドが書き込むバイトは、DataInput インタフェースの readByte メソッドによって読み込まれます。次に、readByte メソッドにより、(byte)v に等しい byte が返されます。

定義:
インタフェース DataOutput 内の writeByte
定義:
インタフェース ImageOutputStream 内の writeByte
パラメータ:
v - 書き込まれるバイト値
例外:
IOException - 入出力エラーが発生した場合

writeShort

public void writeShort(int v)
                throws IOException
インタフェース DataOutput の記述:
引数の値を表す 2 バイトを出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
  

このメソッドが書き込むバイトは、DataInput インタフェースの readShort メソッドによって読み込まれます。次に、readShort メソッドにより、(short)v に等しい short が返されます。

定義:
インタフェース DataOutput 内の writeShort
定義:
インタフェース ImageOutputStream 内の writeShort
パラメータ:
v - 書き込まれる short
例外:
IOException - 入出力エラーが発生した場合

writeChar

public void writeChar(int v)
               throws IOException
インタフェース DataOutput の記述:
2 バイトから構成される char 値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 8)) (byte)(0xff & v) 

このメソッドが書き込むバイトは、DataInput インタフェースの readChar メソッドによって読み込まれます。次に、readChar メソッドにより、(char)v に等しい char が返されます。

定義:
インタフェース DataOutput 内の writeChar
定義:
インタフェース ImageOutputStream 内の writeChar
パラメータ:
v - 書き込まれる char
例外:
IOException - 入出力エラーが発生した場合
関連項目:
ImageOutputStream.writeShort(int)

writeInt

public void writeInt(int v)
              throws IOException
インタフェース DataOutput の記述:
4 バイトから構成される int 値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >>    8)) (byte)(0xff & v) 

このメソッドが書き込むバイトは、DataInput インタフェースの readInt メソッドによって読み込まれます。次に、readInt メソッドにより、v に等しい int が返されます。

定義:
インタフェース DataOutput 内の writeInt
定義:
インタフェース ImageOutputStream 内の writeInt
パラメータ:
v - 書き込まれる int
例外:
IOException - 入出力エラーが発生した場合

writeLong

public void writeLong(long v)
               throws IOException
インタフェース DataOutput の記述:
8 バイトから構成される long 値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 56)) (byte)(0xff & (v >> 48)) (byte)(0xff & (v >> 40)) (byte)(0xff & (v >> 32)) (byte)(0xff & (v >> 24)) (byte)(0xff & (v >> 16)) (byte)(0xff & (v >>  8)) (byte)(0xff & v) 

このメソッドが書き込むバイトは、DataInput インタフェースの readLong メソッドによって読み込まれます。次に、readLong メソッドにより、v に等しい long が返されます。

定義:
インタフェース DataOutput 内の writeLong
定義:
インタフェース ImageOutputStream 内の writeLong
パラメータ:
v - 書き込まれる long
例外:
IOException - 入出力エラーが発生した場合

writeFloat

public void writeFloat(float v)
                throws IOException
インタフェース DataOutput の記述:
4 バイトから構成される float 値を出力ストリームに書き込みます。このためには、まず Float.floatToIntBits メソッドとまったく同じ方法でこの float 値を int に変換してから、writeInt メソッドとまったく同じ方法で int 値を書き込みます。このメソッドが書き込むバイトは、DataInput インタフェースの readFloat メソッドによって読み込まれます。次に、readFloat メソッドにより、v に等しい float が返されます。

定義:
インタフェース DataOutput 内の writeFloat
定義:
インタフェース ImageOutputStream 内の writeFloat
パラメータ:
v - 書き込まれる float
例外:
IOException - 入出力エラーが発生した場合

writeDouble

public void writeDouble(double v)
                 throws IOException
インタフェース DataOutput の記述:
8 バイトから構成される double 値を出力ストリームに書き込みます。このためには、まず Double.doubleToLongBits メソッドとまったく同じ方法でこの double 値を long に変換してから、writeLong メソッドとまったく同じ方法で long 値を書き込みます。このメソッドが書き込むバイトは、DataInput インタフェースの readDouble メソッドによって読み込まれます。次に、readDouble メソッドにより、v に等しい double が返されます。

定義:
インタフェース DataOutput 内の writeDouble
定義:
インタフェース ImageOutputStream 内の writeDouble
パラメータ:
v - 書き込まれる double
例外:
IOException - 入出力エラーが発生した場合

writeBytes

public void writeBytes(String s)
                throws IOException
インタフェース DataOutput の記述:
文字列を出力ストリームに書き込みます。文字列 s の各文字が順番に取り出され、1 バイトが出力ストリームに書き込まれます。snull の場合は、NullPointerException がスローされます。

s.length がゼロの場合、書き込まれるバイトはありません。そうでない場合は、まず文字 s[0]、次に s[1] という具合に順次書き込まれ、最後に文字 s[s.length-1] が書き込まれます。各文字については、writeByte メソッドとまったく同じ方法で、1 バイト、つまり下位バイトが書き込まれます。文字列内の各文字の上位 8 ビットは無視されます。

定義:
インタフェース DataOutput 内の writeBytes
定義:
インタフェース ImageOutputStream 内の writeBytes
パラメータ:
s - 書き込まれるバイトの文字列
例外:
IOException - 入出力エラーが発生した場合

writeChars

public void writeChars(String s)
                throws IOException
インタフェース DataOutput の記述:
文字列 s 内の各文字を、1 文字ごとに 2 バイトずつ順番に書き込みます。snull の場合、NullPointerException がスローされます。s.length がゼロの場合、書き込まれる文字はありません。そうでない場合は、まず文字 s[0]、次に s[1] と順次書き込まれ、最後に文字 s[s.length-1] が書き込まれます。各文字については、writeChar メソッドとまったく同じ方法で、上位バイトを先にして 2 バイトが実際に書き込まれます。

定義:
インタフェース DataOutput 内の writeChars
定義:
インタフェース ImageOutputStream 内の writeChars
パラメータ:
s - 書き込まれる文字列の値
例外:
IOException - 入出力エラーが発生した場合

writeUTF

public void writeUTF(String s)
              throws IOException
インタフェース DataOutput の記述:
長さ情報の 2 バイトを出力ストリームに書き込みます。その後ろには、文字列 s 内の各文字の修正 UTF-8 表現が続きます。snull の場合、NullPointerException がスローされます。文字列 s 内の各文字は、文字の値に基づいて、1、2、または 3 バイトのグループに変換されます。

文字 c\u0001\u007f の範囲にある場合、次のような 1 バイトで表現されます。

(byte)c 

文字 c\u0000 の場合や、\u0080\u07ff の範囲にある場合には、次の順序で書き込まれる 2 バイトにより表されます。


 (byte)(0xc0 | (0x1f & (c >> 6)))
 (byte)(0x80 | (0x3f & c))
  

文字 c\u0800uffff の範囲にある場合、次の順序で書き込まれる 3 バイトにより表されます。


 (byte)(0xe0 | (0x0f & (c >> 12)))
 (byte)(0x80 | (0x3f & (c >>  6)))
 (byte)(0x80 | (0x3f & c))
  

まず、s のすべての文字を表すのに必要な総バイト数が計算されます。この数値が 65535 を超える場合は、UTFDataFormatException がスローされます。そうでない場合は、この長さが writeShort メソッドとまったく同じ方法で出力ストリームに書き込まれます。次に、文字列 s 内の各文字の 1、2、または 3 バイト表現が書き込まれます。

このメソッドが書き込むバイトは、DataInput インタフェースの readUTF メソッドによって読み込まれます。次に、readUTF メソッドにより、s に等しい String が返されます。

定義:
インタフェース DataOutput 内の writeUTF
定義:
インタフェース ImageOutputStream 内の writeUTF
パラメータ:
s - 書き込まれる文字列の値
例外:
IOException - 入出力エラーが発生した場合

writeShorts

public void writeShorts(short[] s,
                        int off,
                        int len)
                 throws IOException
インタフェース ImageOutputStream の記述:
short のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に short s[off]、次に short s[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeShorts
パラメータ:
s - 書き込まれる short 配列
off - データの開始オフセット
len - 書き込む short
例外:
IOException - 入出力エラーが発生した場合

writeChars

public void writeChars(char[] c,
                       int off,
                       int len)
                throws IOException
インタフェース ImageOutputStream の記述:
char のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に char c[off]、次に char c[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeChars
パラメータ:
c - 書き込まれる char 配列
off - データの開始オフセット
len - 書き込む char
例外:
IOException - 入出力エラーが発生した場合

writeInts

public void writeInts(int[] i,
                      int off,
                      int len)
               throws IOException
インタフェース ImageOutputStream の記述:
int のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に int i[off]、次に int i[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeInts
パラメータ:
i - 書き込まれる int 配列
off - データの開始オフセット
len - 書き込む int
例外:
IOException - 入出力エラーが発生した場合

writeLongs

public void writeLongs(long[] l,
                       int off,
                       int len)
                throws IOException
インタフェース ImageOutputStream の記述:
long のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に long l[off]、次に long l[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeLongs
パラメータ:
l - 書き込まれる long 配列
off - データの開始オフセット
len - 書き込む long
例外:
IOException - 入出力エラーが発生した場合

writeFloats

public void writeFloats(float[] f,
                        int off,
                        int len)
                 throws IOException
インタフェース ImageOutputStream の記述:
float のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に float f[off]、次に float f[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeFloats
パラメータ:
f - 書き込まれる float 配列
off - データの開始オフセット
len - 書き込む float
例外:
IOException - 入出力エラーが発生した場合

writeDoubles

public void writeDoubles(double[] d,
                         int off,
                         int len)
                  throws IOException
インタフェース ImageOutputStream の記述:
double のシーケンスをストリームの現在位置に書き込みます。len が 0 の場合は、何も書き込みません。最初に double d[off]、次に double d[off + 1]、という順序で書き込みが行われます。ストリームのバイト順を使用して、個々のバイトを書き込む順番が決定されます。

ストリーム内のビットオフセットがゼロでない場合、現在のバイトの残りは 0 でパディングされ、最初に書き込まれます。書き込み後は、ビットオフセットは 0 です。

定義:
インタフェース ImageOutputStream 内の writeDoubles
パラメータ:
d - 書き込まれる double 配列
off - データの開始オフセット
len - 書き込む double
例外:
IOException - 入出力エラーが発生した場合

writeBit

public void writeBit(int bit)
              throws IOException
インタフェース ImageOutputStream の記述:
引数の最下位ビットで指定された 1 ビットを、ストリームの現在のバイト位置の現在のビットオフセットに書き込みます。引数の上位 31 ビットは無視されます。指定されたビットにより、その位置にあった以前のビットは置換されます。ビットオフセットは 1 ずつ増加し、8 を法として減分します。

特定のバイトの任意のビットが、バイトが出力先にフラッシュされる時点で設定されていなかった場合、これらのビットは自動的に 0 に設定されます。

定義:
インタフェース ImageOutputStream 内の writeBit
パラメータ:
bit - その最下位ビットがストリームに書き込まれる int
例外:
IOException - 入出力エラーが発生した場合

writeBits

public void writeBits(long bits,
                      int numBits)
               throws IOException
インタフェース ImageOutputStream の記述:
bits 引数の下位 numBits ビットのビットシーケンスを左から右に、ストリームの現在のバイト位置の現在のビットオフセットに書き込みます。引数の上位 64 - numBits ビットは無視されます。ビットオフセットは numBits だけ増加し、8 を法として減分します。ビットオフセット 0 は常にバイトの最高位ビットを示し、ビットのバイトは検出された順番に書き込まれます。したがってビットの書き込みは、事実上常にネットワークバイト順です。実際のストリームバイト順の設定は無視されます。

ビットデータは、flushBefore が呼び出されるまでメモリに無限に蓄積されます。呼び出された時点で、フラッシュ位置より前のビットデータがすべて書き込まれます。

特定のバイトの任意のビットが、バイトが出力先にフラッシュされる時点で設定されていなかった場合、これらのビットは自動的に 0 に設定されます。

定義:
インタフェース ImageOutputStream 内の writeBits
パラメータ:
bits - ビット位置 numBits - 1 から最下位ビットまでが書き込まれるビットを含む long
numBits - 0 から 64 までの int
例外:
IOException - 入出力エラーが発生した場合

flushBits

protected final void flushBits()
                        throws IOException
ビットオフセットがゼロでない場合、現在のバイトの残りのビットを強制的に 0 にして、ストリーム位置を 1 だけ増加します。サブクラスは、write(int) および write(byte[], int, int) メソッドの先頭でこのメソッドを呼び出す必要があります。

例外:
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 も参照してください。