在代碼的最後一部分,我打印了Reader給我的東西。但它只是假的,我哪裏錯了?從Java ZIP壓縮文件中提取UTF-16編碼文件
public static void read_impl(File file, String targetFile) {
// Create zipfile input stream
FileInputStream stream = new FileInputStream(file);
ZipInputStream zipFile = new ZipInputStream(new BufferedInputStream(stream));
// Im looking for a specific file/entry
while (!zipFile.getNextEntry().getName().equals(targetFile)) {
zipFile.getNextEntry();
}
// Next step in api requires a reader
// The target file is a UTF-16 encoded text file
InputStreamReader reader = new InputStreamReader(zipFile, Charset.forName("UTF-16"));
// I cant make sense of what this print
char buf[] = new char[1];
while (reader.read(buf, 0, 1) != -1) {
System.out.print(buf);
}
}
該文件包含什麼內容,取而代之的是什麼? 看來這甚至沒有編譯,考慮到你使用的是「字符串」參數而不是「字符串」。 – 2010-01-25 10:13:45
謝謝,Ive已將字符串更改爲String,實際參數是硬編碼的,但爲了清晰起見,我在此處更改了源代碼。 – Mizipzor 2010-01-25 10:20:51
有問題的文件是一個xml文件,但在這一步中不重要(不解析它),所以我們可以將其稱爲純文本。 – Mizipzor 2010-01-25 10:22:47