JavaTM 2 Platform
Standard Ed. 6

javax.imageio.stream
類別 FileCacheImageOutputStream

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

public class FileCacheImageOutputStream
extends ImageOutputStreamImpl

將輸出寫入常規 OutputStream 中的 ImageOutputStream 的實作。在將資料刷新到輸出串流前用於快取記憶體資料的檔案。


欄位摘要
 
從類別 javax.imageio.stream.ImageInputStreamImpl 繼承的欄位
bitOffset, byteOrder, flushedPos, streamPos
 
建構子摘要
FileCacheImageOutputStream(OutputStream stream, File cacheDir)
          建構一個將向給定 outputStream 進行寫入的 FileCacheImageOutputStream
 
方法摘要
 void close()
          關閉此 FileCacheImageOututStream
 void flushBefore(long pos)
          丟棄所指示位置之前的串流初始部分。
 boolean isCached()
          返回 true,因為此 ImageOutputStream為了允許逆向尋找而快取記憶體了資料。
 boolean isCachedFile()
          返回 true,因為此 ImageOutputStream 維護檔案快取記憶體。
 boolean isCachedMemory()
          返回 false,因為此 ImageOutputStream 不維護主存快取記憶體。
 long length()
          返回 -1L,指示串流的長度未知。
 int read()
          從串流中讀取單個位元組,並以 int(0 到 255 之間)形式返回該位元組。
 int read(byte[] b, int off, int len)
          從串流中讀取至多 len 個位元組,並將其存儲到 b 中(從 off 索引處開始)。
 void seek(long pos)
          設置當前串流位置並將位偏移量重置為 0。
 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, 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, setBitOffset, setByteOrder, skipBytes, skipBytes
 

建構子詳細資訊

FileCacheImageOutputStream

public FileCacheImageOutputStream(OutputStream stream,
                                  File cacheDir)
                           throws IOException
建構一個將向給定 outputStream 進行寫入的 FileCacheImageOutputStream

將臨時檔案用作快取記憶體。如果 cacheDir 不為 null 且是一個目錄,則在該處創建檔案。如果為 null,則將使用與系統相關的預設臨時檔案目錄(有關詳細資料,請參閱 File.createTempFile 的文檔)。

參數:
stream - 將寫入到的 OutputStream
cacheDir - 一個指示快取記憶體檔案創建目錄的 File;或 null,指示使用系統目錄。
拋出:
IllegalArgumentException - 如果 streamnull
IllegalArgumentException - 如果 cacheDir 不為 null 但不是一個目錄。
IOException - 如果無法創建快取記憶體檔案。
方法詳細資訊

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。

seek

public void seek(long pos)
          throws IOException
設置當前串流位置並將位偏移量重置為 0。尋找檔案末尾的後面是合法的;僅當在該處執行讀取時才拋出 EOFException。在執行寫入前,檔案長度不會增加。

指定者:
介面 ImageInputStream 中的 seek
覆寫:
類別 ImageInputStreamImpl 中的 seek
參數:
pos - 一個 long,它包含所需的檔案指針位置。
拋出:
IndexOutOfBoundsException - 如果 pos 小於刷新的位置。
IOException - 如果發生任何其他 I/O 錯誤。

isCached

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

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

isCachedFile

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

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

isCachedMemory

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

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

close

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

指定者:
介面 ImageInputStream 中的 close
覆寫:
類別 ImageInputStreamImpl 中的 close
拋出:
IOException - if an error occurs.

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