JavaTM 2 Platform
Standard Ed. 6

java.security
類別 DigestInputStream

java.lang.Object
  繼承者 java.io.InputStream
      繼承者 java.io.FilterInputStream
          繼承者 java.security.DigestInputStream
所有已實作的介面:
Closeable

public class DigestInputStream
extends FilterInputStream

使用通過串流的位更新關聯訊息摘要的透明串流。

要完成訊息摘要計算,先要調用此摘要輸入串流的一個 read 方法,之後在關聯的訊息摘要上調用一個 digest 方法。

開啟或關閉此串流都是可能的(請參見 on)。開啟時,調用 read 方法之一將導致訊息摘要的更新。但是關閉時,不更新訊息摘要。串流在預設情況下是開啟的。

注意,摘要物件只能計算一個摘要(參見 MessageDigest),因此,為了計算中間摘要,調用者應該保留到摘要物件的句柄並為要計算的每一個摘要複製該物件,不改動原始摘要。

另請參見:
MessageDigest, DigestOutputStream

欄位摘要
protected  MessageDigest digest
          與此串流關聯的訊息摘要。
 
從類別 java.io.FilterInputStream 繼承的欄位
in
 
建構子摘要
DigestInputStream(InputStream stream, MessageDigest digest)
          使用指定的輸入串流和訊息摘要創建一個摘要輸入串流。
 
方法摘要
 MessageDigest getMessageDigest()
          返回與此串流關聯的訊息摘要。
 void on(boolean on)
          開啟或關閉摘要功能。
 int read()
          讀取位元組並更新訊息摘要(如果開啟了摘要功能)。
 int read(byte[] b, int off, int len)
          讀入 byte 陣列並更新訊息摘要(如果開啟了摘要功能)。
 void setMessageDigest(MessageDigest digest)
          將指定的訊息摘要與此串流相關聯。
 String toString()
          列印此摘要輸入串流及其關聯的訊息摘要物件的字元串表示形式。
 
從類別 java.io.FilterInputStream 繼承的方法
available, close, mark, markSupported, read, reset, skip
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

digest

protected MessageDigest digest
與此串流關聯的訊息摘要。

建構子詳細資訊

DigestInputStream

public DigestInputStream(InputStream stream,
                         MessageDigest digest)
使用指定的輸入串流和訊息摘要創建一個摘要輸入串流。

參數:
stream - 輸入串流。
digest - 要與此串流關聯的訊息摘要。
方法詳細資訊

getMessageDigest

public MessageDigest getMessageDigest()
返回與此串流關聯的訊息摘要。

返回:
與此串流關聯的訊息摘要。
另請參見:
setMessageDigest(java.security.MessageDigest)

setMessageDigest

public void setMessageDigest(MessageDigest digest)
將指定的訊息摘要與此串流相關聯。

參數:
digest - 要與此串流關聯的訊息摘要。
另請參見:
getMessageDigest()

read

public int read()
         throws IOException
讀取位元組並更新訊息摘要(如果開啟了摘要功能)。即此方法從輸入串流讀取位元組,在實際讀取位元組前一直為阻塞狀態。如果開啟摘要功能(參見 on),則此方法將在與此串流關聯的訊息摘要上調用 update,將讀取的位元組傳遞給該方法。

覆寫:
類別 FilterInputStream 中的 read
返回:
讀取的位元組。
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
MessageDigest.update(byte)

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
讀入 byte 陣列並更新訊息摘要(如果開啟了摘要功能)。即此方法從輸入串流將至多 len 個位元組讀入陣列 b,從偏移量 off 開始。此方法在實際讀取資料前一直阻塞。如果開啟摘要功能(參見 on),則此方法將在與此串流關聯的訊息摘要上調用 update,將資料傳遞給該方法。

覆寫:
類別 FilterInputStream 中的 read
參數:
b - 從中讀取資料的陣列。
off - b 中的偏移量,應將資料從此處開始放入陣列。
len - 從輸入串流讀入 b 的最大位元組數,從偏移量 off 開始。
返回:
讀取的實際位元組數。如果在讀取 len 個位元組前到達了串流的末尾,則其小於 len。如果因為進行調用時已經到達了串流的末尾而沒有讀取任何位元組,則返回 -1。
拋出:
IOException - 如果發生 I/O 錯誤。
另請參見:
MessageDigest.update(byte[], int, int)

on

public void on(boolean on)
開啟或關閉摘要功能。預設為開啟。開啟時,調用 read 方法之一將導致訊息摘要的更新。但是關閉時,不更新訊息摘要。

參數:
on - 為 true 表示開啟摘要功能,為 false 表示關閉。

toString

public String toString()
列印此摘要輸入串流及其關聯的訊息摘要物件的字元串表示形式。

覆寫:
類別 Object 中的 toString
返回:
該物件的字元串表示形式。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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