|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.util.zip.Deflater
public class Deflater
此類別使用串流行的 ZLIB 壓縮程序資源庫為通用壓縮提供支持。ZLIB 壓縮程序資源庫最初是作為 PNG 圖形標準的一部分開發的,不受專利的保護。有關該規範的完整描述,請參見 java.util.zip 套件描述。
以下程式碼片段演示使用 Deflater 和 Inflater 壓縮和解壓縮字元串的詳細過程。
try {
// Encode a String into bytes
String inputString = "blahblahblah??";
byte[] input = inputString.getBytes("UTF-8");
// Compress the bytes
byte[] output = new byte[100];
Deflater compresser = new Deflater();
compresser.setInput(input);
compresser.finish();
int compressedDataLength = compresser.deflate(output);
// Decompress the bytes
Inflater decompresser = new Inflater();
decompresser.setInput(output, 0, compressedDataLength);
byte[] result = new byte[100];
int resultLength = decompresser.inflate(result);
decompresser.end();
// Decode the bytes into a String
String outputString = new String(result, 0, resultLength, "UTF-8");
} catch(java.io.UnsupportedEncodingException ex) {
// handle
} catch (java.util.zip.DataFormatException ex) {
// handle
}
Inflater| 欄位摘要 | |
|---|---|
static int |
BEST_COMPRESSION
最佳壓縮的壓縮級別。 |
static int |
BEST_SPEED
最快壓縮的壓縮級別。 |
static int |
DEFAULT_COMPRESSION
預設壓縮級別。 |
static int |
DEFAULT_STRATEGY
預設壓縮策略。 |
static int |
DEFLATED
deflate 演算法(當前支持的唯一演算法)的壓縮方法。 |
static int |
FILTERED
最適用於主要由小值組成並具有某種程度隨意分佈的資料的壓縮策略。 |
static int |
HUFFMAN_ONLY
僅適用於 Huffman 編碼的壓縮策略。 |
static int |
NO_COMPRESSION
無壓縮的壓縮級別。 |
| 建構子摘要 | |
|---|---|
Deflater()
使用預設壓縮級別創建新的壓縮器。 |
|
Deflater(int level)
使用指定壓縮級別創建新的壓縮器。 |
|
Deflater(int level,
boolean nowrap)
使用指定壓縮級別創建新的壓縮器。 |
|
| 方法摘要 | |
|---|---|
int |
deflate(byte[] b)
使用壓縮資料填充指定緩衝區。 |
int |
deflate(byte[] b,
int off,
int len)
使用壓縮資料填充指定緩衝區。 |
void |
end()
關閉解壓縮器並放棄所有未處理的輸入。 |
protected void |
finalize()
回收垃圾時關閉壓縮器。 |
void |
finish()
調用時,指示壓縮應當以輸入緩衝區的當前內容結尾。 |
boolean |
finished()
如果已到達壓縮資料輸出串流的結尾,則返回 true。 |
int |
getAdler()
返回未壓縮資料的 ADLER-32 值。 |
long |
getBytesRead()
返回到目前為止輸入未壓縮位元組的總數。 |
long |
getBytesWritten()
返回到目前為止輸出壓縮位元組的總數。 |
int |
getTotalIn()
返回到目前為止輸入未壓縮位元組的總數。 |
int |
getTotalOut()
返回到目前為止輸出壓縮位元組的總數。 |
boolean |
needsInput()
如果輸入資料緩衝區為空,並且應調用 setInput() 以提供更多輸入,則返回 true。 |
void |
reset()
重置 deflater 以處理新的輸入資料集。 |
void |
setDictionary(byte[] b)
為壓縮預置字典。 |
void |
setDictionary(byte[] b,
int off,
int len)
為壓縮設置預置字典。 |
void |
setInput(byte[] b)
為壓縮設置輸入資料。 |
void |
setInput(byte[] b,
int off,
int len)
為壓縮設置輸入資料。 |
void |
setLevel(int level)
將當前壓縮級別設置為指定值。 |
void |
setStrategy(int strategy)
將壓縮策略設置為指定值。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 欄位詳細資訊 |
|---|
public static final int DEFLATED
public static final int NO_COMPRESSION
public static final int BEST_SPEED
public static final int BEST_COMPRESSION
public static final int DEFAULT_COMPRESSION
public static final int FILTERED
public static final int HUFFMAN_ONLY
public static final int DEFAULT_STRATEGY
| 建構子詳細資訊 |
|---|
public Deflater(int level,
boolean nowrap)
level - 壓縮級別 (0-9)nowrap - 如果為 true ,則使用 GZIP 相容的壓縮public Deflater(int level)
level - 壓縮級別 (0-9)public Deflater()
| 方法詳細資訊 |
|---|
public void setInput(byte[] b,
int off,
int len)
b - 輸入資料位元組off - 資料的初始偏移量len - 資料的長度needsInput()public void setInput(byte[] b)
b - 輸入資料位元組needsInput()
public void setDictionary(byte[] b,
int off,
int len)
b - 字典資料位元組off - 資料的初始偏移量len - 資料的長度Inflater.inflate(byte[], int, int),
Inflater.getAdler()public void setDictionary(byte[] b)
b - 字典資料位元組Inflater.inflate(byte[], int, int),
Inflater.getAdler()public void setStrategy(int strategy)
strategy - 新的壓縮策略
IllegalArgumentException - 如果壓縮策略無效public void setLevel(int level)
level - 新的壓縮級別 (0-9)
IllegalArgumentException - 如果壓縮級別無效public boolean needsInput()
public void finish()
public boolean finished()
public int deflate(byte[] b,
int off,
int len)
b - 壓縮資料的緩衝區off - 資料的初始偏移量len - 壓縮資料的最大位元組數
public int deflate(byte[] b)
b - 壓縮資料的緩衝區
public int getAdler()
public int getTotalIn()
由於該位元組數可能大於 Integer.MAX_VALUE,因此 getBytesRead() 方法現在是獲取此資訊的首選方法。
public long getBytesRead()
public int getTotalOut()
由於該位元組數可能大於 Integer.MAX_VALUE,因此 getBytesWritten() 方法現在是獲取此資訊的首選方法。
public long getBytesWritten()
public void reset()
public void end()
protected void finalize()
Object 中的 finalize
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。