|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.imageio.stream.ImageInputStreamImpl
public abstract class ImageInputStreamImpl
實作 ImageInputStream 介面的抽象類別。此類別設計用於減少必須由子類別實作的方法數。
需要特別指出的是,此類別處理大部分或全部關於位元組順序解釋、緩衝、標記/重置、丟棄、關閉和釋放的詳細資料。
| 欄位摘要 | |
|---|---|
protected int |
bitOffset
串流中的當前位偏移量。 |
protected ByteOrder |
byteOrder
串流的位元組順序,其為列舉類別 java.nio.ByteOrder 的實例,其中 ByteOrder.BIG_ENDIAN 指示網路位元組順序,ByteOrder.LITTLE_ENDIAN 指示反向順序。 |
protected long |
flushedPos
可能丟棄的資料前面的那個位置。 |
protected long |
streamPos
串流中的當前讀取位置。 |
| 建構子摘要 | |
|---|---|
ImageInputStreamImpl()
建構一個 ImageInputStreamImpl。 |
|
| 方法摘要 | |
|---|---|
protected void |
checkClosed()
如果已經關閉串流,則拋出 IOException。 |
void |
close()
關閉串流。 |
protected void |
finalize()
在垃圾回收前結束此物件。 |
void |
flush()
丟棄當前串流位置之前的串流初始部分。 |
void |
flushBefore(long pos)
丟棄所指示位置之前的串流初始部分。 |
int |
getBitOffset()
以整數的形式返回當前位偏移量,該整數在 0 到 7 之間(包含兩者)。 |
ByteOrder |
getByteOrder()
以 java.nio.ByteOrder 列舉實例的形式返回從此串流中讀取資料值時所使用的位元組順序。 |
long |
getFlushedPosition()
返回串流中可以執行尋找的最早位置。 |
long |
getStreamPosition()
返回串流的當前位元組位置。 |
boolean |
isCached()
預設實作返回 false。 |
boolean |
isCachedFile()
預設實作返回 false。 |
boolean |
isCachedMemory()
預設實作返回 false。 |
long |
length()
返回 -1L,指示串流的長度未知。 |
void |
mark()
將當前串流位置推進到標記位置的堆疊(stack)空間上。 |
abstract int |
read()
從串流中讀取單個位元組,並以 int(0 到 255 之間)形式返回該位元組。 |
int |
read(byte[] b)
調用 read(b, 0, b.length) 的便捷方法。 |
abstract int |
read(byte[] b,
int off,
int len)
從串流中讀取至多 len 個位元組,並將其存儲到 b 中(從 off 索引處開始)。 |
int |
readBit()
從串流中讀取單個位元組,並以 int(0 或 1)的形式返回該位元組。 |
long |
readBits(int numBits)
從串流中讀取位串 (bitstring) 並以 long 的形式返回,使第一個讀取的位成為輸出的最高有效位。 |
boolean |
readBoolean()
從串流中讀取一個位元組,如果其不為 0,則返回 boolean 值 true;如果為 0,則返回 false。 |
byte |
readByte()
從串流中讀取一個位元組,並以 byte 值的形式返回該位元組。 |
void |
readBytes(IIOByteBuffer buf,
int len)
從串流中讀取至多 len 個位元組,並修改提供的 IIOByteBuffer 以指示可以找到資料的 byte 陣列、偏移量和長度。 |
char |
readChar()
與 readUnsignedShort 等效,唯一的不同在於它的結果使用 char 資料型別返回。 |
double |
readDouble()
從串流中讀取 8 個位元組,根據當前位元組順序將其連接(概念上),然後以 double 值的形式返回結果。 |
float |
readFloat()
從串流中讀取 4 個位元組,根據當前位元組順序將其連接(概念上),然後以 float 值的形式返回結果。 |
void |
readFully(byte[] b)
從串流中讀取 b.length 個位元組,並將其存儲到 b 中(從索引 0 開始)。 |
void |
readFully(byte[] b,
int off,
int len)
從串流中讀取 len 個位元組,並將其存儲到 b 中(從索引 off 開始)。 |
void |
readFully(char[] c,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 char(無符號 16 位整數),並將其存儲到 c 中(從索引 off 開始)。 |
void |
readFully(double[] d,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 double(64 位 IEEE 雙精度浮點值),並將其存儲到 d 中(從索引 off 開始)。 |
void |
readFully(float[] f,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 float(32 位 IEEE 單精度浮點值),並將其存儲到 f 中(從索引 off 開始)。 |
void |
readFully(int[] i,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 int(有符號 32 位整數),並將其存儲到 i 中(從索引 off 開始)。 |
void |
readFully(long[] l,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 long(有符號 64 位整數),並將其存儲到 l 中(從索引 off 開始)。 |
void |
readFully(short[] s,
int off,
int len)
根據當前位元組順序從串流中讀取 len 個 short(有符號 16 位整數),並將其存儲到 s 中(從索引 off 開始)。 |
int |
readInt()
從串流中讀取 4 個位元組,根據當前位元組順序將其連接(概念上),然後以 int 值的形式返回結果。 |
String |
readLine()
從輸入串流中讀取文本的下一行。 |
long |
readLong()
從串流中讀取 8 個位元組,根據當前位元組順序將其連接(概念上),然後以 long 值的形式返回結果。 |
short |
readShort()
從串流中讀取兩個位元組,根據當前位元組順序將其連接(概念上),然後以 short 值的形式返回結果。 |
int |
readUnsignedByte()
從串流中讀取一個位元組,將其轉換為 int(概念上),使用 0xff 屏蔽以便去掉所有符號擴展位,然後以 byte 值的形式返回。 |
long |
readUnsignedInt()
從串流中讀取 4 個位元組,根據當前位元組順序將其連接(概念上),將得到的值轉換為 long,使用 0xffffffffL 屏蔽以便去掉所有符號擴展位,然後以無符號 long 值的形式返回結果。 |
int |
readUnsignedShort()
從串流中讀取兩個位元組,根據當前位元組順序將其連接(概念上),將得到的值轉換為 int,使用 0xffff 屏蔽以便去掉所有符號擴展位,然後以無符號 int 值的形式返回結果。 |
String |
readUTF()
讀入一個已使用 UTF-8 修改版格式編碼的字元串。 |
void |
reset()
根據標記的堆疊(stack)空間重置當前串流位元組和位位置。 |
void |
seek(long pos)
將當前串流位置設置為所需的位置。 |
void |
setBitOffset(int bitOffset)
將位偏移量設置為 0 到 7 之間(包含兩者)的整數。 |
void |
setByteOrder(ByteOrder byteOrder)
設置希望以後從此串流中讀取資料值時使用的位元組順序。 |
int |
skipBytes(int n)
通過調用 seek(getStreamPosition() + n) 推進當前串流位置。 |
long |
skipBytes(long n)
通過調用 seek(getStreamPosition() + n) 推進當前串流位置。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 欄位詳細資訊 |
|---|
protected ByteOrder byteOrder
java.nio.ByteOrder 的實例,其中 ByteOrder.BIG_ENDIAN 指示網路位元組順序,ByteOrder.LITTLE_ENDIAN 指示反向順序。預設情況下,該值為 ByteOrder.BIG_ENDIAN。
protected long streamPos
protected int bitOffset
protected long flushedPos
flushedPos 將總是 >= 0。
| 建構子詳細資訊 |
|---|
public ImageInputStreamImpl()
ImageInputStreamImpl。
| 方法詳細資訊 |
|---|
protected final void checkClosed()
throws IOException
IOException。子類別可以從其任何要求不關閉串流的方法中調用此方法。
IOException - 如果已關閉串流。public void setByteOrder(ByteOrder byteOrder)
ImageInputStream 複製的描述 列舉類別 java.nio.ByteOrder 用於指定位元組順序。值 ByteOrder.BIG_ENDIAN 指定所謂的 big-endian 或網路位元組順序,該順序中高位位元組在前。Motorola 和 Sparc 處理器用此格式存儲資料,而 Intel 處理器使用與之相反的 ByteOrder.LITTLE_ENDIAN 順序存儲資料。
位元組順序對 readBits 方法返回的結果(或 ImageOutputStream.writeBits 寫入的值)沒有任何影響。
ImageInputStream 中的 setByteOrderbyteOrder - ByteOrder.BIG_ENDIAN 或 java.nio.ByteOrder.LITTLE_ENDIAN,指示以後讀取時是使用網路順序還是使用與之相反的順序。ByteOrder,
ImageInputStream.getByteOrder(),
ImageInputStream.readBits(int)public ByteOrder getByteOrder()
ImageInputStream 複製的描述java.nio.ByteOrder 列舉實例的形式返回從此串流中讀取資料值時所使用的位元組順序。
ImageInputStream 中的 getByteOrderByteOrder.BIG_ENDIAN 或 ByteOrder.LITTLE_ENDIAN,指示要使用的位元組順序。ByteOrder,
ImageInputStream.setByteOrder(java.nio.ByteOrder)
public abstract int read()
throws IOException
int(0 到 255 之間)形式返回該位元組。 如果到達 EOF,則返回 -1。
子類別必須提供此方法的實作。子類別實作在退出前應該更新串流位置。
在發生讀取前,串流中的位偏移量必須被重置為 0。
ImageInputStream 中的 read-1。
IOException - 如果串流已經被關閉。
public int read(byte[] b)
throws IOException
read(b, 0, b.length) 的便捷方法。
在發生讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readb - 用來接收寫入的 byte 陣列。
-1,指示 EOF。
NullPointerException - 如果 b 為 null。
IOException - 如果發生 I/O 錯誤。
public abstract int read(byte[] b,
int off,
int len)
throws IOException
len 個位元組,並將其存儲到 b 中(從 off 索引處開始)。如果由於到達串流末尾而沒有讀取任何位元組,則返回 -1。
在發生讀取前,串流中的位偏移量必須被重置為 0。
子類別必須提供此方法的實作。子類別實作在退出前應該更新串流位置。
ImageInputStream 中的 readb - 用來接收寫入的位元組陣列。off - b 中要寫入的起始位置。len - 要讀取的最大位元組數。
-1,指示 EOF。
IndexOutOfBoundsException - 如果 off 為負、len 為負或者 off + len 大於 b.length。
NullPointerException - 如果 b 為 null。
IOException - 如果發生 I/O 錯誤。
public void readBytes(IIOByteBuffer buf,
int len)
throws IOException
ImageInputStream 複製的描述len 個位元組,並修改提供的 IIOByteBuffer 以指示可以找到資料的 byte 陣列、偏移量和長度。調用者不應該試圖修改 IIOByteBuffer 中找到的資料。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readBytesbuf - 要修改的 IIOByteBuffer 物件。len - 要讀取的最大 byte 數。
IOException - 如果發生 I/O 錯誤。
public boolean readBoolean()
throws IOException
ImageInputStream 複製的描述boolean 值 true;如果為 0,則返回 false。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readBooleanImageInputStream 中的 readBooleanEOFException - 如果到達串流末尾。
IOException - 如果發生 I/O 錯誤。
public byte readByte()
throws IOException
ImageInputStream 複製的描述byte 值的形式返回該位元組。0x00 到 0x7f 之間的位元組值表示 0 到 127 之間的整數值。0x80 到 0xff 之間的位元組值表示 -128 到 -1 之間的負整數值。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readByteImageInputStream 中的 readByteEOFException - 如果到達串流末尾。
IOException - 如果發生 I/O 錯誤。
public int readUnsignedByte()
throws IOException
ImageInputStream 複製的描述0xff 屏蔽以便去掉所有符號擴展位,然後以 byte 值的形式返回。
於是,0x00 到 0x7f 之間的位元組值便作為 0 到 127 之間的整數值返回。0x80 到 0xff 之間的位元組值通常表示為負的 byte 值,它們將被映射成 128 到 255 之間的正整數。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readUnsignedByteImageInputStream 中的 readUnsignedByteEOFException - 如果到達串流末尾。
IOException - 如果發生 I/O 錯誤。
public short readShort()
throws IOException
ImageInputStream 複製的描述short 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readShortImageInputStream 中的 readShortEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public int readUnsignedShort()
throws IOException
ImageInputStream 複製的描述int,使用 0xffff 屏蔽以便去掉所有符號擴展位,然後以無符號 int 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readUnsignedShortImageInputStream 中的 readUnsignedShortEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public char readChar()
throws IOException
ImageInputStream 複製的描述readUnsignedShort 等效,唯一的不同在於它的結果使用 char 資料型別返回。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readCharImageInputStream 中的 readCharEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.readUnsignedShort()
public int readInt()
throws IOException
ImageInputStream 複製的描述int 值的形式返回結果。
忽略串流中的位偏移量,將其視為 0。
DataInput 中的 readIntImageInputStream 中的 readIntEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public long readUnsignedInt()
throws IOException
ImageInputStream 複製的描述0xffffffffL 屏蔽以便去掉所有符號擴展位,然後以無符號 long 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readUnsignedIntEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public long readLong()
throws IOException
ImageInputStream 複製的描述long 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readLongImageInputStream 中的 readLongEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public float readFloat()
throws IOException
ImageInputStream 複製的描述float 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readFloatImageInputStream 中的 readFloatEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public double readDouble()
throws IOException
ImageInputStream 複製的描述double 值的形式返回結果。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readDoubleImageInputStream 中的 readDoubleEOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getByteOrder()
public String readLine()
throws IOException
ImageInputStream 複製的描述String 形式返回讀取的字元。注意,因為此方法處理字元,所以它不支持整個 Unicode 字元集的輸入。
如果在一個位元組都沒有讀取的時候就遇到檔案結束標記,則返回 null。否則,通過左側補 0 將讀取的每個位元組轉換成 char 型別的值。如果遇到字元 '\n',則丟棄它並且停止讀取。如果遇到字元 '\r',則丟棄它;如果它後面的那個位元組轉變成字元 '\n',則同樣丟棄它,並且停止讀取。如果在遇到字元 '\n' 和 '\r' 之一前遇到檔案結束標記,則停止讀取。一旦已停止讀取,則返回一個 String,它按順序包含所有已讀取且未丟棄的字元。注意,此字元串中的每個字元的值都將小於 \u0100(即 (char)256)的值。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readLineImageInputStream 中的 readLineIOException - 如果發生 I/O 錯誤。
public String readUTF()
throws IOException
ImageInputStream 複製的描述readUTF 的常規協定是:該方法讀取使用 UTF-8 修改版格式編碼的 Unicode 字元串的表示形式;然後以 String 的形式返回此字元串。
首先,讀取兩個位元組並按 readUnsignedShort 方法的方式使用這兩個位元組建構一個無符號 16 位整數,使用的是網路位元組順序(無論當前設置的是哪種位元組順序)。該整數值被稱為 UTF 長度,它指定要讀取的額外位元組數。然後成組地將這些位元組轉換為字元。每組的長度根據該組第一個位元組的值計算。緊跟在某個組後面的位元組(如果有)是下一組的第一個位元組。
如果組的第一個位元組與位網要 0xxxxxxx(其中 x 表示“可能為 0 或 1”)比對,則該組只有這一個位元組。該位元組被左側補 0,轉換成一個字元。
如果組的第一個位元組與位網要 110xxxxx 比對,則該組只由位元組 a 和另一個位元組 b 組成。如果沒有位元組 b(因為位元組 a 是要讀取的最後一個位元組),或者位元組 b 與位網要 10xxxxxx 不比對,則拋出 UTFDataFormatException。否則,將該組轉換成字元:
(char)(((a& 0x1F) << 6) | (b & 0x3F))
如果組的第一個位元組與位網要 1110xxxx 比對,則該組由位元組 a 和另外兩個位元組 b 和 c 組成。如果沒有位元組 c(因為位元組 a 是要讀取的最後兩個位元組之一),或者位元組 b 或位元組 c 與位網要 10xxxxxx 不比對,則拋出 UTFDataFormatException。否則,將該組轉換成字元:
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
如果組的第一個位元組與網要 1111xxxx 或網要 10xxxxxx 比對,則拋出 UTFDataFormatException。
如果在整個執行過程中的任意時間遇到檔案結束標記,則拋出 EOFException。
在通過此過程將每個組轉換成字元後,按照從輸入串流中讀取相應組的順序,將這些字元收集在一起,形成一個 String,然後該字元串將被返回。
忽略當前設置的位元組順序。
在進行讀取前,串流中的位偏移量被重置為 0。
註:在使用標準 UTF-8 圖像格式的實作中不應該使用此方法,因為此處使用的 UTF-8 修改版與標準 UTF-8 不相容。
DataInput 中的 readUTFImageInputStream 中的 readUTFEOFException - 如果此串流在讀取所有位元組之前到達末尾。
UTFDataFormatException - 如果這些位元組不表示一個有效的、UTF-8 修改版編碼的字元串。
IOException - 如果發生 I/O 錯誤。
public void readFully(byte[] b,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個位元組,並將其存儲到 b 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readFullyImageInputStream 中的 readFullyb - 用來接收寫入的 byte 陣列。off - 向 b 進行寫入的開始位置。len - 要讀取的最大 byte 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(byte[] b)
throws IOException
ImageInputStream 複製的描述b.length 個位元組,並將其存儲到 b 中(從索引 0 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
DataInput 中的 readFullyImageInputStream 中的 readFullyb - 一個 byte 陣列。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(short[] s,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 short(有符號 16 位整數),並將其存儲到 s 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullys - 用來接收寫入的 short 陣列。off - 向 s 進行寫入的開始位置。len - 要讀取的最大 short 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(char[] c,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 char(無符號 16 位整數),並將其存儲到 c 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullyc - 用來接收寫入的 char 陣列。off - 向 c 進行寫入的開始位置。len - 要讀取的最大 char 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(int[] i,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 int(有符號 32 位整數),並將其存儲到 i 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullyi - 用來接收寫入的 int 陣列。off - 向 i 進行寫入的開始位置。len - 要讀取的最大 int 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(long[] l,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 long(有符號 64 位整數),並將其存儲到 l 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullyl - 用來接收寫入的 long 陣列。off - 向 l 進行寫入的開始位置。len - 要讀取的最大 long 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(float[] f,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 float(32 位 IEEE 單精度浮點值),並將其存儲到 f 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullyf - 用來接收寫入的 float 陣列。off - 向 f 進行寫入的開始位置。len - 要讀取的最大 float 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public void readFully(double[] d,
int off,
int len)
throws IOException
ImageInputStream 複製的描述len 個 double(64 位 IEEE 雙精度浮點值),並將其存儲到 d 中(從索引 off 開始)。如果到達串流末尾,則將拋出 EOFException。
在進行讀取前,串流中的位偏移量被重置為 0。
ImageInputStream 中的 readFullyd - 用來接收寫入的 double 陣列。off - 向 d 進行寫入的開始位置。len - 要讀取的最大 double 數。
EOFException - 如果該串流在讀取所有位元組之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public long getStreamPosition()
throws IOException
ImageInputStream 複製的描述
ImageInputStream 中的 getStreamPositionIOException - 如果發生 I/O 錯誤。
public int getBitOffset()
throws IOException
ImageInputStream 複製的描述readBits 方法隱式地更新。值 0 表示所讀取位元組的最高有效位,值 7 表示所讀取位元組的最低有效位。
第一次打開串流時位偏移量被設置為 0,以後可以通過調用 seek、skipBytes、或者任何 read 或 readFully 方法將其重置為 0。
ImageInputStream 中的 getBitOffsetint,包含 0 到 7 之間(包含兩者)的位偏移量。
IOException - 如果發生 I/O 錯誤。ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset)
throws IOException
ImageInputStream 複製的描述getStreamPosition 返回的位偏移量。值 0 表示所讀取位元組的最高有效位,值 7 表示所讀取位元組的最低有效位。
ImageInputStream 中的 setBitOffsetbitOffset - 所需的偏移量,為 0 到 7 之間(包括兩者)的 int 的形式。
IOException - 如果發生 I/O 錯誤。ImageInputStream.getBitOffset()
public int readBit()
throws IOException
ImageInputStream 複製的描述int(0 或 1)的形式返回該位元組。位偏移量將加 1,模數將減 8。
ImageInputStream 中的 readBitint,包含 0 或 1。
EOFException - 如果該串流在讀取所有位之前到達末尾。
IOException - 如果發生 I/O 錯誤。
public long readBits(int numBits)
throws IOException
ImageInputStream 複製的描述long 的形式返回,使第一個讀取的位成為輸出的最高有效位。在 getStreamPosition 指示的位元組中從 getBitOffset 給定的位開始讀取。位偏移量將增加 numBits,模數將減 8。
串流的位元組順序對此方法沒有任何影響。此方法返回值的建構方式相當於每次讀取一個位,然後將其移到返回值的右邊。如以下偽程式碼所示:
long accum = 0L;
for (int i = 0; i < numBits; i++) {
accum <<= 1; // Shift left one bit to make room
accum |= readBit();
}
注意,如果使用了與網路位元組順序相反的順序(即 getByteOrder() == false),那麼 readBits(32) 的結果可能因此而不等於 readInt() 的結果。
如果在讀取了所有位前遇到串流末尾,則拋出 EOFException。
ImageInputStream 中的 readBitsnumBits - 要讀取的位數,為 0 到 64 之間(包含兩者)的 int 形式。
long 形式的位串,最後讀取的位存儲在最低有效位中。
EOFException - 如果該串流在讀取所有位之前到達末尾。
IOException - 如果發生 I/O 錯誤。public long length()
-1L,指示串流的長度未知。子類別必須覆寫此方法來提供實際的長度資訊。
ImageInputStream 中的 length
public int skipBytes(int n)
throws IOException
seek(getStreamPosition() + n) 推進當前串流位置。
位偏移量被重置為 0。
DataInput 中的 skipBytesImageInputStream 中的 skipBytesn - 要逆向尋找的位元組數。
int,表示跳過的位元組數。
IOException - 如果 getStreamPosition 計算起始或結束位置時拋出 IOException。
public long skipBytes(long n)
throws IOException
seek(getStreamPosition() + n) 推進當前串流位置。
位偏移量被重置為 0。
ImageInputStream 中的 skipBytesn - 要逆向尋找的位元組數。
long,表示跳過的位元組數。
IOException - 如果 getStreamPosition 計算起始或結束位置時拋出 IOException。
public void seek(long pos)
throws IOException
ImageInputStream 複製的描述 如果 pos 小於刷新位置(由 getflushedPosition 返回),那麼將拋出 IndexOutOfBoundsException。
尋找檔案結束標記的後面是合法的,只有在該處執行讀取時才拋出 EOFException。
ImageInputStream 中的 seekpos - 一個 long,它包含所需的檔案指針位置。
IOException - 如果發生任何 I/O 錯誤。public void mark()
ImageInputStream 中的 mark
public void reset()
throws IOException
如果以前的標記位置位於串流的丟棄部分,則拋出 IOException。
ImageInputStream 中的 resetIOException - 如果發生 I/O 錯誤。
public void flushBefore(long pos)
throws IOException
ImageInputStream 複製的描述IndexOutOfBoundsException。
調用 flushBefore 可允許實作此介面的類別釋放存儲串流中的資料所使用的資源,如記憶體和磁碟空間。
ImageInputStream 中的 flushBeforepos - 一個 long,它包含要刷新的串流前綴的長度。
IOException - 如果發生 I/O 錯誤。
public void flush()
throws IOException
ImageInputStream 複製的描述flushBefore(getStreamPosition())。
ImageInputStream 中的 flushIOException - 如果發生 I/O 錯誤。public long getFlushedPosition()
ImageInputStream 複製的描述flushBefore 上一次調用的值中的最大值。
ImageInputStream 中的 getFlushedPositionlong 形式)。public boolean isCached()
ImageInputStream 中的 isCachedImageInputStream 快取記憶體資料,則返回 true。ImageInputStream.isCachedMemory(),
ImageInputStream.isCachedFile()public boolean isCachedMemory()
ImageInputStream 中的 isCachedMemoryImageInputStream 在主存中快取記憶體資料,則返回 true。ImageInputStream.isCached(),
ImageInputStream.isCachedFile()public boolean isCachedFile()
ImageInputStream 中的 isCachedFileImageInputStream 在臨時檔案中快取記憶體資料,則返回 true。ImageInputStream.isCached(),
ImageInputStream.isCachedMemory()
public void close()
throws IOException
ImageInputStream 複製的描述IOException 或錯誤行為。調用此方法可允許實作此介面的類別釋放與串流關聯的資源,如記憶體、磁碟空間或檔案描述符。
ImageInputStream 中的 closeIOException - 如果發生 I/O 錯誤。
protected void finalize()
throws Throwable
close 方法來關閉所有開啟的輸入源。不應該從應用程序程式碼調用此方法。
Object 中的 finalizeThrowable - 如果在父級類別終止過程中發生錯誤。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。