2014-07-02 39 views
0

我做this問題,我看到了存在ZipInputStream的構造函數調用:ZipInputStream(的BufferedInputStream,字符集)是未定義

ZipInputStream(BufferedInputStream, Charset)

但調試拋出我的錯誤:

ZipInputStream(BufferedInputStream, Charset) is undefined

並給我的建議:

remove the argument to match ZipInputStream(InputStream)

我已經安裝了最新的JDK和JRE 7,但我仍然有同樣的錯誤。

最後,我在這裏解決了這個問題:

Extracting file with ZipInputStream error UTFDataFormatException

+0

看起來你喜歡導入不同的類。確保你已經導入了'java.nio.charset.Charset' – Jens

回答

1

如果您PROGRAMM你使用了Android庫的Android應用程序。 android ZipInputStream沒有公共構造函數,簽名爲ZipInputStream(InputStream, Charset)。不管你在你的PC上安裝了什麼JDK或JRE,因爲你的應用程序不會在PC上運行(或者在PC上,但在仿真器中)。

+0

還有一個選擇嗎?我在我的zip文件中包含特殊字符。 –

+0

@ƒernandoValle:我對java/android和charsets沒有多少經驗,但看起來像[InputStreamReader](http://developer.android.com/reference/java/io/InputStreamReader.html#InputStreamReader%28java.io .InputStream,%20java.lang.String%29)與ZipInputStream作爲構造參數可以做到這一點。 – fabian

+1

@fabian - 我懷疑它。 Charset指定ZipEntry名稱的編碼,而不是文件本身。 –

1

顯然,在Android API中沒有其他選擇。但是,如果您可以安排ZIP文件設置了「語言編碼標誌(EFS)」位,則最近版本的android應該尊重它,並將條目名稱編碼爲UTF-8。

注意,第二ZipInputStream構造函數添加到(實際)Java類庫Java 7中,而Android的API是基於Java 6

參考:

+0

如何使用例如7zip或其他壓縮器將EFS標誌設置爲zip文件?我有搜索,但我沒有找到很多。 –

+0

最後感謝我在這裏解決我的問題http://stackoverflow.com/questions/24509264/extracting-file-with-zipinputstream-error-utfdataformatexception –

相關問題