|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream java.io.PushbackInputStream
public class PushbackInputStream
PushbackInputStream
為另一個輸入串流添加性能,即“推回 (push back)”或“取消讀取 (unread)”一個位元組的能力。在程式碼片段可以很方便地讀取由特定位元組值分隔的不定數量的資料位元組時,這很有用;在讀取終止位元組後,程式碼片段可以“取消讀取”該位元組,這樣,輸入串流上的下一個讀取操作將會重新讀取被推回的位元組。例如,表示構成標識符字元的位元組可能由表示操作符字元的位元組終止;用於讀取一個標識符的方法可以讀取到遇到操作符為止,然後將該操作符推回以進行重讀。
欄位摘要 | |
---|---|
protected byte[] |
buf
推回緩衝區。 |
protected int |
pos
推回緩衝區中的位置,將讀取該位置的下一個位元組。 |
從類別 java.io.FilterInputStream 繼承的欄位 |
---|
in |
建構子摘要 | |
---|---|
PushbackInputStream(InputStream in)
創建 PushbackInputStream 並保存其參數(即輸入串流 in ),以供將來使用。 |
|
PushbackInputStream(InputStream in,
int size)
使用指定 size 的推回緩衝區創建 PushbackInputStream ,並保存其參數(即輸入串流 in ),以供將來使用。 |
方法摘要 | |
---|---|
int |
available()
返回可以不受下一次調用此輸入串流的方法阻塞地從此輸入串流讀取(或跳過)的估計位元組數。 |
void |
close()
關閉此輸入串流並釋放與該串流關聯的所有系統資源。 |
void |
mark(int readlimit)
在此輸入串流中標記當前的位置。 |
boolean |
markSupported()
測試此輸入串流是否支持 mark 和 reset 方法,此輸入串流不支持這兩個方法。 |
int |
read()
從此輸入串流中讀取下一個資料位元組。 |
int |
read(byte[] b,
int off,
int len)
從此輸入串流將最多 len 個資料位元組讀入 byte 陣列。 |
void |
reset()
將此串流重新定位到最後一次對此輸入串流調用 mark 方法時的位置。 |
long |
skip(long n)
從此輸入串流中跳過並丟棄 n 個資料位元組。 |
void |
unread(byte[] b)
推回一個 byte 陣列:將其複製到推回緩衝區之前。 |
void |
unread(byte[] b,
int off,
int len)
推回 byte 陣列的某一部分:將其複製到推回緩衝區之前。 |
void |
unread(int b)
推回一個位元組:將其複製到推回緩衝區之前。 |
從類別 java.io.FilterInputStream 繼承的方法 |
---|
read |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
protected byte[] buf
protected int pos
pos
等於 buf.length
;緩衝區已滿時,pos
等於 0。
建構子詳細資訊 |
---|
public PushbackInputStream(InputStream in, int size)
size
的推回緩衝區創建 PushbackInputStream
,並保存其參數(即輸入串流 in
),以供將來使用。最初,不存在推回位元組(欄位 pushBack
被初始化為 -1
)。
in
- 從中讀取位元組的輸入串流。size
- 推回緩衝區的大小。
IllegalArgumentException
- 如果 size <= 0public PushbackInputStream(InputStream in)
PushbackInputStream
並保存其參數(即輸入串流 in
),以供將來使用。最初,不存在推回位元組(欄位 pushBack
被初始化為 -1
)。
in
- 從中讀取位元組的輸入串流。方法詳細資訊 |
---|
public int read() throws IOException
int
形式返回 0
到 255
範圍內位元組值。如果因為已經到達串流末尾而沒有可用的位元組,則返回值 -1
。在輸入資料可用、檢測到串流末尾或者拋出異常之前,此方法一直阻塞。
此方法返回最近一次推回的位元組(如果有),否則將調用其底層輸入串流的 read
方法,並返回該方法返回的任何值。
FilterInputStream
中的 read
-1
。
IOException
- 如果已調用其 close()
方法關閉此輸入串流,或者發生 I/O 錯誤。InputStream.read()
public int read(byte[] b, int off, int len) throws IOException
len
個資料位元組讀入 byte 陣列。此方法首先讀取所有推回位元組;然後,如果讀取的位元組數少於 len
個位元組,那麼它將從底層輸入串流中讀取位元組。如果 len
不為 0,那麼在至少 1 個輸入位元組可用之前,該方法將一直阻塞;否則,不讀取任何位元組並返回 0
。
FilterInputStream
中的 read
b
- 讀入資料的緩衝區。off
- 目標陣列 b
中的初始偏移量。len
- 讀取的最大位元組數。
-1
。
NullPointerException
- 如果 b
為 null
。
IndexOutOfBoundsException
- 如果 off
為負,len
為負,或者 len
大於 b.length - off
IOException
- 如果已調用其 close()
方法關閉此輸入串流,或者發生 I/O 錯誤。InputStream.read(byte[], int, int)
public void unread(int b) throws IOException
(byte)b
。
b
- 要推回其低位位元組的 int
值。
IOException
- 如果推回緩衝區中沒有足夠的空間來存儲位元組,或者已調用其 close()
方法關閉此輸入串流。public void unread(byte[] b, int off, int len) throws IOException
b[off]
,該位元組之後的位元組的值將為 b[off+1]
,依此類別推。
b
- 要推回的 byte 陣列。off
- 資料的初始偏移量。len
- 要推回的位元組數。
IOException
- 如果推回緩衝區中沒有足夠的空間來存儲指定位元組數,或者已調用其 close()
方法關閉此輸入串流。public void unread(byte[] b) throws IOException
b[0]
,該位元組之後的位元組的值將為 b[1]
,依此類別推。
b
- 要推回的 byte 陣列
IOException
- 如果推回緩衝區中沒有足夠的空間來存儲指定位元組數,或者已調用其 close()
方法關閉此輸入串流。public int available() throws IOException
該方法返回已被推回的位元組數與 available
返回的值之和。
FilterInputStream
中的 available
IOException
- 如果已調用其 close()
方法關閉此輸入串流,或者發生 I/O 錯誤。FilterInputStream.in
,
InputStream.available()
public long skip(long n) throws IOException
n
個資料位元組。由於多種原因,skip
方法結束時跳過的位元組數可能少於該數,也可能為 0。如果 n
為負,則不跳過任何位元組。
PushbackInputStream
的 skip
方法首先跳過推回緩衝區中的位元組(如果有)。如果需要跳過更多位元組,那麼它將調用底層輸入串流的 skip
方法。返回跳過的實際位元組數。
FilterInputStream
中的 skip
n
- 要跳過的位元組數。
IOException
- 如果串流不支持尋找操作,或者已調用其 close()
方法關閉,或者發生 I/O 錯誤。FilterInputStream.in
,
InputStream.skip(long n)
public boolean markSupported()
mark
和 reset
方法,此輸入串流不支持這兩個方法。
FilterInputStream
中的 markSupported
false
,因為此類別不支持 mark
和 reset
方法。InputStream.mark(int)
,
InputStream.reset()
public void mark(int readlimit)
PushbackInputStream
的 mark
方法不執行任何操作。
FilterInputStream
中的 mark
readlimit
- 在標記位置變無效前可以讀取位元組的最大限制。InputStream.reset()
public void reset() throws IOException
mark
方法時的位置。
類別 PushbackInputStream
的方法 reset
不執行任何操作,只拋出 IOException
。
FilterInputStream
中的 reset
IOException
- 如果調用此方法。InputStream.mark(int)
,
IOException
public void close() throws IOException
Closeable
中的 close
FilterInputStream
中的 close
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。