.BZ2 檔案副檔名

副檔名為 .BZ2 的檔案使用 BZIP2 演算法進行壓縮。這個由 Julian Seward 開發的免費開源工具實現了令人印象深刻的壓縮比,使其成為縮小大型檔案或資料集的理想選擇。與 ZIP 等存檔格式不同,BZIP2 僅壓縮單一檔案。值得慶幸的是,對於大多數支援該格式的檔案歸檔程式來說,建立和提取 BZ2 檔案非常簡單。 BZIP2 在壓縮和解壓縮方面的效率使其成為軟體分發、資料備份和網路傳輸的熱門選擇。

關於 BZIP2 存檔

GZIP 類似,BZ2 用作資料壓縮器,但它缺乏 TAR 或 ZIP 等歸檔器的多功能性。與這些格式不同,BZIP2 不支援將多個檔案壓縮到單一存檔中,也不提供加密或存檔分割功能。在 UNIX 傳統中,歸檔通常是單獨處理的,BZIP2 僅用於壓縮。然而,使用 BZIP2 解壓縮非常高效,特別是與其較慢的壓縮速度相比。為了解決這種不平衡問題,2003 年出現了名為 PBZIP2 的修改版本,它利用多執行緒顯著提高現代多 CPU 和多核心系統的壓縮時間。

.BZ2 存檔文件格式歷史信息

.BZ2 檔案格式與 BZIP2 壓縮相關,其起源可追溯至 Julian Seward 在 20 世紀 90 年代末在 UNIX 社群中的開發工作。多年來,演算法在維護方面經歷了多次轉變,Micah Snyder 於2021 年6 月接任維護者。壓縮速度和多核心系統。儘管取得了這些進步,.BZ2 格式的核心原則仍然基於其對 Burrows-Wheeler 變換、前移變換和霍夫曼編碼技術的有效使用。

BZIP2 檔案的結構

BZIP2 採用基於區塊的壓縮,通常將資料壓縮為大小從 100 到 900 kB 的區塊。它利用 Burrows–Wheeler 變換將重複的字元序列轉換為相同字母的字串,然後進行移至前面變換和霍夫曼編碼。值得注意的是,它的前身 bzip 使用算術編碼而不是霍夫曼進行壓縮。

BZIP2 壓縮方法

不幸的是,BZIP2 缺乏一些同類產品中的多種壓縮技術。相反,它依賴於一種獨特的、精心設計的資料壓縮方法。該技術的特點是:

  • 區塊排序: BZIP2 將資料分成更小的區塊進行單獨壓縮。
  • Burrows-Wheeler 變換: 此步驟重新排列每個區塊內的數據,以透過識別重複模式來提高壓縮效率。
  • 向後移動: 然後演算法向後迭代轉換後的數據,應用霍夫曼編碼進行進一步壓縮。
  • 遊程編碼: 此技術可識別資料區塊內的重複字元並對其進行編碼,以節省額外的空間。

BZIP2 存檔支援的操作

Aspose.ZIP 有助於對 .BZ2 檔案存檔進行一系列操作,包括提取、壓縮、檔案打包、合併和存檔轉換。使用者可以無縫地從 .BZ2 檔案中提取資料、壓縮檔案、合併存檔以及輕鬆地在不同存檔格式之間進行轉換。此外, Aspose.ZIP 支援將大型 .BZ2 檔案拆分為多個磁碟區,以提高可管理性和儲存效率。

BZIP2 - 內部結構

雖然 bzip2 沒有官方規範,但透過參考實現的逆向工程已經得出了非正式規範。本質上,.bz2 流以簡潔的 4 位元組標頭開始,隨後是任意數量的壓縮區塊,最後以流結束標記無縫結束,該標記具有整個處理後的明文流的 32 位元 CRC 校驗和。值得注意的是,壓縮塊與位元級別對齊,不需要額外的填充。這種簡化的結構強調了 bzip2 壓縮格式的效率和簡單性。大約46 MB(45,899,236 位元組)。當整個未壓縮文字完全由重複值組成時(導致 .bz2 檔案只有 46 個位元組),就會出現這種情況。透過利用完全由值 251 組成的輸入數據,甚至可以實現更小的檔案(小至 40 位元組),從而實現令人震驚的 1,147,480.9:1 壓縮比。這項非凡的壯舉展示了 bzip2 壓縮演算法令人難以置信的效率和多功能性。

BZIP2 - 內部結構

BZIP2 檔案和支援的受歡迎程度

.BZ2 檔案雖然不如 .ZIP 或 .7z 格式那麼流行,但仍然在特定應用程式中有用,特別是在 Unix 和 Linux 環境中。它們提供強大的壓縮功能,並在各種作業系統和軟體工具中得到良好的支援。儘管其地位有限,BZIP2 存檔仍然是打包軟體發行版和資料備份的可靠選擇。對 .BZ2 檔案的支援很廣泛,許多歸檔工具和腳本語言都提供用於建立和提取它們的內建功能。然而,隨著更新的壓縮演算法的出現,BZIP2 檔案的流行和使用可能會繼續發展。

使用 BZIP2 的範例

Aspose.ZIP 將 Bzip2 壓縮提升到一個新的水平。透過利用 CPU 的平行處理能力,Aspose.ZIP 可以將壓縮工作負載劃分到多個核心。這意味著壓縮時間顯著加快,尤其是對於大型資料集。使用 Aspose.ZIP 啟動並行壓縮就像將 CompressionThreads 屬性設為大於 1 的值一樣簡單

Parallel Compression for BZ2 Files

This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.

using (Bzip2Archive archive = new Bzip2Archive())
{
    archive.SetSource("data.bin");
    archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads =  Environment.ProcessorCount });
}

Bzip2SaveOptions.CompressionThreads property

This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .

    public int CompressionThreads { get; set; }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

有關 BZIP2 檔案的其他信息

人們一直在問

1. BZIP2安全嗎?它可以加密檔案嗎?

這解決了人們對資料安全的普遍擔憂。需要澄清的是,BZIP2 本身並沒有提供加密。使用者可能需要一個單獨的工具,在使用 BZIP2 壓縮檔案之前對其進行加密。例如,可以使用單獨的加密工具為先前建立的檔案產生 強密碼

2. 使用 BZIP2 壓縮有哪些優點和限制?

BZIP2 的主要優點是能夠實現高壓縮比,但與其他演算法相比,它可能需要更多的運算資源和時間。此外,BZIP2 檔案不支援在 單一壓縮檔案 中儲存多個檔案。

3. BZIP2 和 ZIP 或 TAR 等存檔格式有什麼不同?

這一點至關重要,因為 BZIP2 只壓縮單個文件,而 ZIP 和 TAR 可以將多個文件歸檔到單一套件中。若要解決此限制,您可以使用 Aspose.ZIP API 將檔案新增至 ZIP 檔案而不壓縮