0
我有一個下面提到的java類,它提取一個zip,並逐個將其內容轉換爲字符串並打印到控制檯。
問題是,當zip內的文件大〜80KB時。整個內容沒有被顯示(只有3/4的數據被轉換爲字符串並在控制檯中顯示)。
其次,下面提到的代碼是在介於兩者之間的空/空間以及如果文件大小很小〜1KB無法使用ZipInputStream處理zip文件中的大文件
下面提到的代碼中出現了什麼問題。
public static void main(String[] args) throws Exception {
byte[] buf = new byte[1024];
final int BUFFER = 1024;
String fName = "c:\\DOC00001.zip";
ZipInputStream zinstream = new ZipInputStream(
new FileInputStream(fName));
ZipEntry zentry = zinstream.getNextEntry();
while (zentry != null) {
byte data[] = new byte[BUFFER];
ByteArrayOutputStream out = new ByteArrayOutputStream();
while ((zinstream.read(data, 0, BUFFER)) != -1) {
out.write(data);
}
InputStream is = new ByteArrayInputStream(out.toByteArray());
StringWriter writer = new StringWriter();
IOUtils.copy(is, writer, "UTF-8");
String response = writer.toString();
System.out.println(response);
zentry = zinstream.getNextEntry();
}
zinstream.close();
}