2014-05-11 85 views
-1

所以我有一個很大的字節數組。它的前2/3基本上是空白的,只是0。最後還有一些文字對我很有用,在文字之間也有很多亂七八糟的東西。不知道如何處理我的字節數組

現在你怎麼過濾至少從字節數組中的空白部分?

眼下,這是我在做什麼:

FileInputStream fis = null;  
fis = new FileInputStream("resources/xampp2.zip");    
byte[] bytes = IOUtils.toByteArray(fis);     
String decoded = new String(bytes, "UTF-8"); 

這是一個已損壞的.zip文件,所以2/3爲我sayd,完全是空的,剩下的就是中央目錄。但現在它會將它全部加載到一個非常大的字符串變量中,這並不是一種真正有效的方式來執行我相信的事情嗎?

但是,如何迭代我的數組中的字節塊並過濾掉垃圾?

+0

我不建議轉換二進制數據的大陣成'String'刪除空字節。 '字符串是用於文本。如果你這樣做,你最終會破壞你的數據。 –

回答

1

您可以從解碼的字符串

decoded = decoded.replaceAll("\u0000+", ""); 
+0

那麼,這是擺脫了文件開頭的大空洞,這是一個很大的開始!謝謝。 – Veske

+0

不客氣。如果您只想保留字符串中的文本,則可以使用相同的方法,但要替換所有非字詞非空格字符http://docs.oracle.com/javase/7/docs/api/java/util/regex/ Pattern.html – isalgueiro

相關問題