|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.io.InputStream java.io.FilterInputStream javax.crypto.CipherInputStream
public class CipherInputStream
CipherInputStream 由一個 InputStream 和一個 Cipher 組成,這樣 read() 方法才能返回從底層 InputStream 讀入但已經由該 Cipher 另外處理過的資料。在由 CipherInputStream 使用之前,該 Cipher 必須充分初始化。
例如,假設 Cipher 初始化為解密,在返回解密的資料之前,CipherInputStream 將嘗試讀入資料並將其解密。
此類別嚴格遵守此語義,尤其是其祖先類別 java.io.FilterInputStream 和 java.io.InputStream 的失敗語義。此類別具有在其祖先類別中指定的所有方法,並且對所有的這些方法進行了覆寫。除此之外,此類別還對其祖先類別未拋出的所有異常進行捕獲。特別地,skip
方法跳過,available
方法只計算已由封裝的 Cipher 處理過的資料。
對開發人員非常重要的一點是,請不要使用未在此類別中定義或覆寫的方法(例如,後來加入到其父級類別之一中的新方法或建構子),因為那些方法的設計和實作可能未考慮到對 CipherInputStream 的安全影響。
InputStream
,
FilterInputStream
,
Cipher
,
CipherOutputStream
欄位摘要 |
---|
從類別 java.io.FilterInputStream 繼承的欄位 |
---|
in |
建構子摘要 | |
---|---|
protected |
CipherInputStream(InputStream is)
根據 InputStream 建構 CipherInputStream,不指定 Cipher。 |
|
CipherInputStream(InputStream is,
Cipher c)
根據 InputStream 和 Cipher 建構 CipherInputStream。 |
方法摘要 | |
---|---|
int |
available()
返回不發生阻塞地從此輸入串流讀取的位元組數。 |
void |
close()
關閉該輸入串流並釋放任何與該串流關聯的系統資源。 |
boolean |
markSupported()
測試該輸入串流是否支持 mark 和 reset 方法以及哪一個方法確實不受支持。 |
int |
read()
從該輸入串流讀取下一資料位元組。 |
int |
read(byte[] b)
從該輸入串流將 b.length 個資料位元組讀入到位元組陣列中。 |
int |
read(byte[] b,
int off,
int len)
從該輸入串流將 len 個位元組資料讀入到位元組陣列中。 |
long |
skip(long n)
跳過不發生阻塞地從該輸入串流讀取的位元組中的 n 個位元組的輸入。 |
從類別 java.io.FilterInputStream 繼承的方法 |
---|
mark, reset |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public CipherInputStream(InputStream is, Cipher c)
is
- 將被處理的輸入串流c
- 已初始化的 Cipher 物件protected CipherInputStream(InputStream is)
is
- 將被處理的輸入串流方法詳細資訊 |
---|
public int read() throws IOException
0
到 255
範圍內的 int
位元組值。如果因為到達串流末尾而沒有可用的位元組,則返回值 -1
。在輸入資料可用、檢測到串流末尾或拋出異常之前,此方法將一直阻塞。
FilterInputStream
中的 read
-1
。
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
public int read(byte[] b) throws IOException
b.length
個資料位元組讀入到位元組陣列中。
InputStream
的 read
方法將 b
、0
和 b.length
作為三個參數來調用 read
方法。
FilterInputStream
中的 read
b
- 存儲讀入資料的緩衝區。
-1
。
IOException
- 如果發生 I/O 錯誤。InputStream.read(byte[], int, int)
public int read(byte[] b, int off, int len) throws IOException
len
個位元組資料讀入到位元組陣列中。在某些輸入可用之前,此方法將阻塞。如果第一個參數為 null
,則讀取和丟棄的位元組數最多為 len
個。
FilterInputStream
中的 read
b
- 存儲讀入資料的緩衝區。off
- 目標陣列 buf
中的起始偏移量len
- 讀取的最大位元組數。
-1
。
IOException
- 如果發生 I/O 錯誤。InputStream.read()
public long skip(long n) throws IOException
n
個位元組的輸入。
可能跳過比請求更少的位元組數。實際跳過的位元組數等於 n
或等於調用
的結果,總之都較小。如果 available
n
為小於零,則不跳過任何位元組。
返回實際跳過的位元組數。
FilterInputStream
中的 skip
n
- 要跳過的位元組數。
IOException
- 如果發生 I/O 錯誤。public int available() throws IOException
InputStream
的 markSupported
方法返回 false
。此方法應該由子類別覆寫。
FilterInputStream
中的 available
IOException
- 如果發生 I/O 錯誤。public void close() throws IOException
CipherInputStream
的 close
方法調用底層輸入串流的 close
方法。
Closeable
中的 close
FilterInputStream
中的 close
IOException
- 如果發生 I/O 錯誤。FilterInputStream.in
public boolean markSupported()
mark
和 reset
方法以及哪一個方法確實不受支持。
FilterInputStream
中的 markSupported
mark
和 reset
方法,所以返回 false
。InputStream.mark(int)
,
InputStream.reset()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。