JavaTM 2 Platform
Standard Ed. 6

javax.imageio.stream
類別 MemoryCacheImageOutputStream

java.lang.Object
  繼承者 javax.imageio.stream.ImageInputStreamImpl
      繼承者 javax.imageio.stream.ImageOutputStreamImpl
          繼承者 javax.imageio.stream.MemoryCacheImageOutputStream
所有已實作的介面:
DataInput, DataOutput, ImageInputStream, ImageOutputStream

public class MemoryCacheImageOutputStream
extends ImageOutputStreamImpl

將輸出寫入常規 OutputStream 中的 ImageOutputStream 的實作。記憶體緩衝區用於快取記憶體(至少)丟棄位置和當前寫入位置之間的資料。唯一的建構子帶有一個 OutputStream,因此此類別不能用於讀取/修改/寫入操作。讀取操作只能發生在那些已經被寫入到快取記憶體且尚未被刷新的串流部分。


欄位摘要
 
從類別 javax.imageio.stream.ImageInputStreamImpl 繼承的欄位
bitOffset, byteOrder, flushedPos, streamPos
 
建構子摘要
MemoryCacheImageOutputStream(OutputStream stream)
          建構將向給定 OutputStream 進行寫入的 MemoryCacheImageOutputStream
 
方法摘要
 void close()
          關閉此 MemoryCacheImageOutputStream
 void flushBefore(long pos)
          丟棄所指示位置之前的串流初始部分。
 boolean isCached()
          返回 true,因為此 ImageOutputStream為了允許逆向尋找而快取記憶體了資料。
 boolean isCachedFile()
          返回 false,因為此 ImageOutputStream 不維護檔案快取記憶體。
 boolean isCachedMemory()
          返回 true,因為此 ImageOutputStream 維護主存快取記憶體。
 long length()
          返回 -1L,指示串流的長度未知。
 int read()
          從串流中讀取單個位元組,並以 int(0 到 255 之間)形式返回該位元組。
 int read(byte[] b, int off, int len)
          從串流中讀取至多 len 個位元組,並將其存儲到 b 中(從 off 索引處開始)。
 void write(byte[] b, int off, int len)
          將位元組序列寫入到串流中的當前位置。
 void write(int b)
          將單個位元組寫入到串流中的當前位置。
 
從類別 javax.imageio.stream.ImageOutputStreamImpl 繼承的方法
flushBits, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF
 
從類別 javax.imageio.stream.ImageInputStreamImpl 繼承的方法
checkClosed, finalize, flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, mark, 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.ImageInputStream 繼承的方法
flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, mark, 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
 

建構子詳細資訊

MemoryCacheImageOutputStream

public MemoryCacheImageOutputStream(OutputStream stream)
建構將向給定 OutputStream 進行寫入的 MemoryCacheImageOutputStream

參數:
stream - 將寫入到的 OutputStream
拋出:
IllegalArgumentException - 如果 streamnull
方法詳細資訊

read

public int read()
         throws IOException
從類別 ImageInputStreamImpl 複製的描述
從串流中讀取單個位元組,並以 int(0 到 255 之間)形式返回該位元組。 如果到達 EOF,則返回 -1

子類別必須提供此方法的實作。子類別實作在退出前應該更新串流位置。

在發生讀取前,串流中的位偏移量必須被重置為 0。

指定者:
介面 ImageInputStream 中的 read
指定者:
類別 ImageInputStreamImpl 中的 read
返回:
串流中下一個位元組的值;如果到達 EOF,則返回 -1
拋出:
IOException - 如果串流已經被關閉。

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
從類別 ImageInputStreamImpl 複製的描述
從串流中讀取至多 len 個位元組,並將其存儲到 b 中(從 off 索引處開始)。如果由於到達串流末尾而沒有讀取任何位元組,則返回 -1

在發生讀取前,串流中的位偏移量必須被重置為 0。

子類別必須提供此方法的實作。子類別實作在退出前應該更新串流位置。

指定者:
介面 ImageInputStream 中的 read
指定者:
類別 ImageInputStreamImpl 中的 read
參數:
b - 用來接收寫入的位元組陣列。
off - b 中要寫入的起始位置。
len - 要讀取的最大位元組數。
返回:
實際讀取的位元組數;或者 -1,指示 EOF。
拋出:
IOException - 如果發生 I/O 錯誤。

write

public void write(int b)
           throws IOException
從介面 ImageOutputStream 複製的描述
將單個位元組寫入到串流中的當前位置。b 的 24 個高位將被忽略。

如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。實作方可使用 ImageOutputStreamImplflushBits 方法來保證這一點。

指定者:
介面 DataOutput 中的 write
指定者:
介面 ImageOutputStream 中的 write
指定者:
類別 ImageOutputStreamImpl 中的 write
參數:
b - 一個 int,其低 8 位將被寫入。
拋出:
IOException - 如果發生 I/O 錯誤。

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
從介面 ImageOutputStream 複製的描述
將位元組序列寫入到串流中的當前位置。如果 len 為 0,則不寫入任何位元組。首先寫入位元組 b[off],然後寫入位元組 b[off + 1],依此類別推。

如果串流中的位偏移量不為零,則首先將當前位元組的余項用 0 填充並將其寫出。寫出後位偏移量將為 0。實作方可使用 ImageOutputStreamImplflushBits 方法來保證這一點。

指定者:
介面 DataOutput 中的 write
指定者:
介面 ImageOutputStream 中的 write
指定者:
類別 ImageOutputStreamImpl 中的 write
參數:
b - 要寫入的 byte 陣列。
off - 資料中的初始偏移量。
len - 要寫入的 byte 數。
拋出:
IOException - 如果發生 I/O 錯誤。

length

public long length()
從類別 ImageInputStreamImpl 複製的描述
返回 -1L,指示串流的長度未知。子類別必須覆寫此方法來提供實際的長度資訊。

指定者:
介面 ImageInputStream 中的 length
覆寫:
類別 ImageInputStreamImpl 中的 length
返回:
指示不知道長度的 -1L。

isCached

public boolean isCached()
返回 true,因為此 ImageOutputStream為了允許逆向尋找而快取記憶體了資料。

指定者:
介面 ImageInputStream 中的 isCached
覆寫:
類別 ImageInputStreamImpl 中的 isCached
返回:
true
另請參見:
isCachedMemory(), isCachedFile()

isCachedFile

public boolean isCachedFile()
返回 false,因為此 ImageOutputStream 不維護檔案快取記憶體。

指定者:
介面 ImageInputStream 中的 isCachedFile
覆寫:
類別 ImageInputStreamImpl 中的 isCachedFile
返回:
false
另請參見:
isCached(), isCachedMemory()

isCachedMemory

public boolean isCachedMemory()
返回 true,因為此 ImageOutputStream 維護主存快取記憶體。

指定者:
介面 ImageInputStream 中的 isCachedMemory
覆寫:
類別 ImageInputStreamImpl 中的 isCachedMemory
返回:
true
另請參見:
isCached(), isCachedFile()

close

public void close()
           throws IOException
關閉此 MemoryCacheImageOutputStream。所有的掛起資料都將被刷新到輸出,釋放該快取記憶體。但不關閉目標 OutputStream

指定者:
介面 ImageInputStream 中的 close
覆寫:
類別 ImageInputStreamImpl 中的 close
拋出:
IOException - 如果發生 I/O 錯誤。

flushBefore

public void flushBefore(long pos)
                 throws IOException
從介面 ImageInputStream 複製的描述
丟棄所指示位置之前的串流初始部分。試圖尋找串流的刷新部分中的偏移量將導致拋出 IndexOutOfBoundsException

調用 flushBefore 可允許實作此介面的類別釋放存儲串流中的資料所使用的資源,如記憶體和磁碟空間。

指定者:
介面 ImageInputStream 中的 flushBefore
指定者:
介面 ImageOutputStream 中的 flushBefore
覆寫:
類別 ImageInputStreamImpl 中的 flushBefore
參數:
pos - 一個 long,它包含要刷新的串流前綴的長度。
拋出:
IOException - 如果發生 I/O 錯誤。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only