2012-02-01 173 views
2

想知道是否有人在這裏有一些gzip格式的經驗。我有一個非常大的gzip文件,我需要解析。但是,我可能只需要一小部分解壓縮的文本文件。是否可以在不解壓整個文件的情況下流式處理這個zip文件?gzip格式流式傳輸

任何使用gzip的經驗?

+2

這取決於。 Arte的內容全部是單獨的文件,還是您需要從中獲取部分的大文件?我認爲大多數gzip庫(如lzma)在流式傳輸單個文件方面沒有問題。 – Bartvbl 2012-02-01 20:12:54

+0

如果不解壓縮整個文件,您將如何確定需要的內容?或者你只需​​要從頭開始的一部分? – jtahlborn 2012-02-01 20:32:15

+0

@Bartvbl - 不知道我理解你的評論。 _gzip_格式本質上是一種單一的流格式(這就是爲什麼它通常與tar,它可以結合多個文件)。 – jtahlborn 2012-02-01 20:33:29

回答

2

你知道你可以使用標準的java庫類吧?這是相當瑣碎的,是這樣的:

GZIPInputStream stream = new GZIPInputStream(new FileInputStream("some_file.gz")); 
BufferedReader reader = new BufferedReader(stream); 

// Now read line by line... till you hit the content you want. 

整個文件不會解壓縮在磁盤上,只是豆腐塊,你需要它在內存中。你可以選擇使用相應的輸出流再次壓縮和寫回。

+0

沒有意識到這是多麼容易! – 2012-02-01 21:20:11