Deflater.Deflate 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| Deflate(ByteBuffer) |
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 |
| Deflate(Byte[]) |
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 |
| Deflate(ByteBuffer, Int32) |
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 |
| Deflate(Byte[], Int32, Int32) |
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 |
| Deflate(Byte[], Int32, Int32, Int32) |
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 |
Deflate(ByteBuffer)
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。
[Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;)I", "GetDeflate_Ljava_nio_ByteBuffer_Handler", ApiSince=35)]
public virtual int Deflate(Java.Nio.ByteBuffer? output);
[<Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;)I", "GetDeflate_Ljava_nio_ByteBuffer_Handler", ApiSince=35)>]
abstract member Deflate : Java.Nio.ByteBuffer -> int
override this.Deflate : Java.Nio.ByteBuffer -> int
參數
- output
- ByteBuffer
壓縮數據的緩衝區
傳回
寫入輸出緩衝區之壓縮數據的實際位元組數目
- 屬性
備註
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 傳回壓縮數據的實際位元元組數。 傳回值為 0 表示 #needsInput() needsInput 應該呼叫 ,以判斷是否需要更多輸入數據。
這個方法會使用 #NO_FLUSH 做為其壓縮排清模式。 表單 deflater.deflate(output) 的這個方法調用會產生與 調用 deflater.deflate(output, Deflater.NO_FLUSH)相同的結果。
新增11。
的 java.util.zip.Deflater.deflate(java.nio.ByteBuffer)Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
Deflate(Byte[])
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。
[Android.Runtime.Register("deflate", "([B)I", "GetDeflate_arrayBHandler")]
public virtual int Deflate(byte[]? output);
[<Android.Runtime.Register("deflate", "([B)I", "GetDeflate_arrayBHandler")>]
abstract member Deflate : byte[] -> int
override this.Deflate : byte[] -> int
參數
- output
- Byte[]
壓縮數據的緩衝區
傳回
寫入輸出緩衝區之壓縮數據的實際位元組數目
- 屬性
備註
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 傳回壓縮數據的實際位元元組數。 傳回值為 0 表示 #needsInput() needsInput 應該呼叫 ,以判斷是否需要更多輸入數據。
這個方法會使用 #NO_FLUSH 做為其壓縮排清模式。 表單 deflater.deflate(b) 的這個方法調用會產生與 調用 deflater.deflate(b, 0, b.length, Deflater.NO_FLUSH)相同的結果。
的 java.util.zip.Deflater.deflate(byte[])Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
Deflate(ByteBuffer, Int32)
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。
[Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;I)I", "GetDeflate_Ljava_nio_ByteBuffer_IHandler", ApiSince=35)]
public virtual int Deflate(Java.Nio.ByteBuffer? output, int flush);
[<Android.Runtime.Register("deflate", "(Ljava/nio/ByteBuffer;I)I", "GetDeflate_Ljava_nio_ByteBuffer_IHandler", ApiSince=35)>]
abstract member Deflate : Java.Nio.ByteBuffer * int -> int
override this.Deflate : Java.Nio.ByteBuffer * int -> int
參數
- output
- ByteBuffer
壓縮數據的緩衝區
- flush
- Int32
壓縮排清模式
傳回
寫入輸出緩衝區之壓縮數據的實際位元組數目
- 屬性
備註
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 傳回壓縮之數據的實際位元元組數目。
壓縮排清模式是下列三種模式之一:
<ul><li>#NO_FLUSH:可讓解壓縮器決定要在產生輸出之前累積多少數據,以達到最佳壓縮(應該在正常使用案例中使用)。 此排清模式中的傳回值 0 表示 #needsInput() 應該呼叫 ,以判斷是否需要更多輸入數據。
<li>#SYNC_FLUSH:解壓縮器中的所有擱置輸出都會排清到指定的輸出緩衝區,讓壓縮數據上運作的擴充器可以取得到目前為止可用的所有輸入數據(特別是 #needsInput() 如果提供足夠的輸出空間,則此調用之後的傳回 true )。 使用 #SYNC_FLUSH 排清可能會降低某些壓縮演算法的壓縮,因此應該只在必要時才使用。
<li>#FULL_FLUSH:所有擱置的輸出都會以 一樣 #SYNC_FLUSH清除。 壓縮狀態會重設,如此一來,如果先前的壓縮數據已損毀,或是需要隨機存取,壓縮輸出數據上的擴充器可以從此點重新啟動。 使用 #FULL_FLUSH 太常可能會嚴重降低壓縮。
</ul>
若 或 #FULL_FLUSH#SYNC_FLUSH,若回傳值等於緩衝區剩餘空間 ByteBuffer#remaining() 空間,則應以相同 flush 參數及更多輸出空間再次呼叫此方法。 確保緩衝區至少有 6 位元組剩餘空間,以避免每次呼叫此方法時,清除標記(5 位元組)都會重複輸出到輸出緩衝區。
成功後,該 output 位元組緩衝區的位置將前進與操作產生的位元組相同,該位元組數等於此方法回傳的位元組數。
若 #setInput(ByteBuffer) 呼叫該方法提供輸入緩衝區,輸入緩衝區的位置會依據此操作所消耗的位元組數前進。
新增11。
的 java.util.zip.Deflater.deflate(java.nio.ByteBuffer, int)Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
Deflate(Byte[], Int32, Int32)
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。
[Android.Runtime.Register("deflate", "([BII)I", "GetDeflate_arrayBIIHandler")]
public virtual int Deflate(byte[]? output, int off, int len);
[<Android.Runtime.Register("deflate", "([BII)I", "GetDeflate_arrayBIIHandler")>]
abstract member Deflate : byte[] * int * int -> int
override this.Deflate : byte[] * int * int -> int
參數
- output
- Byte[]
壓縮數據的緩衝區
- off
- Int32
數據的開始位移
- len
- Int32
壓縮數據的最大位元組數
傳回
寫入輸出緩衝區之壓縮數據的實際位元組數目
- 屬性
備註
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 傳回壓縮數據的實際位元元組數。 傳回值為 0 表示 #needsInput() needsInput 應該呼叫 ,以判斷是否需要更多輸入數據。
這個方法會使用 #NO_FLUSH 做為其壓縮排清模式。 表單 deflater.deflate(b, off, len) 的這個方法調用會產生與 調用 deflater.deflate(b, off, len, Deflater.NO_FLUSH)相同的結果。
的 java.util.zip.Deflater.deflate(byte[], int, int)Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
適用於
Deflate(Byte[], Int32, Int32, Int32)
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。
[Android.Runtime.Register("deflate", "([BIII)I", "GetDeflate_arrayBIIIHandler")]
public virtual int Deflate(byte[]? output, int off, int len, int flush);
[<Android.Runtime.Register("deflate", "([BIII)I", "GetDeflate_arrayBIIIHandler")>]
abstract member Deflate : byte[] * int * int * int -> int
override this.Deflate : byte[] * int * int * int -> int
參數
- output
- Byte[]
壓縮數據的緩衝區
- off
- Int32
數據的開始位移
- len
- Int32
壓縮數據的最大位元組數
- flush
- Int32
壓縮排清模式
傳回
寫入輸出緩衝區之壓縮數據的實際位元組數目
- 屬性
例外狀況
如果 不合法,則 flush 為 。
備註
壓縮輸入數據,並使用壓縮的數據填入指定的緩衝區。 傳回壓縮之數據的實際位元元組數目。
壓縮排清模式是下列三種模式之一:
<ul><li>#NO_FLUSH:可讓解壓縮器決定要在產生輸出之前累積多少數據,以達到最佳壓縮(應該在正常使用案例中使用)。 此排清模式中的傳回值 0 表示 #needsInput() 應該呼叫 ,以判斷是否需要更多輸入數據。
<li>#SYNC_FLUSH:解壓縮器中的所有擱置輸出都會排清到指定的輸出緩衝區,讓壓縮數據上運作的擴充器可以取得到目前為止可用的所有輸入數據(特別是 #needsInput() 如果提供足夠的輸出空間,則此調用之後的傳回 true )。 使用 #SYNC_FLUSH 排清可能會降低某些壓縮演算法的壓縮,因此應該只在必要時才使用。
<li>#FULL_FLUSH:所有擱置的輸出都會以 一樣 #SYNC_FLUSH清除。 壓縮狀態會重設,如此一來,如果先前的壓縮數據已損毀,或是需要隨機存取,壓縮輸出數據上的擴充器可以從此點重新啟動。 使用 #FULL_FLUSH 太常可能會嚴重降低壓縮。
</ul>
如果是 #FULL_FLUSH 或 #SYNC_FLUSH,如果傳回值為 len,則輸出緩衝區 b中可用的空間,則應該使用相同的參數和更多輸出空間來叫用 flush 這個方法。 確保 大 len 於 6,以避免每次呼叫此方法時,清除標記(5 位元組)重複輸出到輸出緩衝區。
若 #setInput(ByteBuffer) 呼叫該方法提供輸入緩衝區,輸入緩衝區的位置會依據此操作所消耗的位元組數前進。
已在1.7中新增。
的 java.util.zip.Deflater.deflate(byte[], int, int, int)Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。