0

我有一个 zip 文件,通过使用zis.getNextEntry().

可以很好地从 ZipEntry 获取String对象,我需要将副本保存到我的应用程序的目录中。

我很好的目录部分我只需要知道如何立即保存每个位图,而不必对其进行解码并在内存中创建一个位图对象。

这是我获取每个文本文件内容的代码。

if (decodeFile) { // WE ARE LOOKING AT A FILE WE CAN DECODE
    while ((read = zis.read(buffer, 0, 1024)) >= 0) {
        String string = new String(buffer, 0, read);
        s.append(string);
    }
    stringArray.add(s.toString());
} else { // WE ARE LOOKING AT AN IMAGE/DIRECTORY

}

提前致谢。

4

2 回答 2

0

您应该简单地创建一个 OutputStream,而不是将值读取到 String,而是将它们直接写入 OutputStream。

它应该是这样的:

ZipFile zipFile = new ZipFile("foo.zip");
InputStream in = null;
OutputStream out = new FileOutputStream("...");

in = zipFile.getInputStream(zipFile.getEntry("yourbitmap.jpg"));

byte data[] = new byte[1024];
while ((count = in.read(data, 0, 1024)) != -1) {
    out.write(data, 0, count);
}
于 2012-11-16T16:54:05.580 回答
0
if (decodeFile) { // WE ARE LOOKING AT A FILE WE CAN DECODE
        FileWriter fw = new FileWriter("path/name.ext");
        while ((read = zis.read(buffer, 0, 1024)) >= 0) {
            String string = new String(buffer, 0, read);
            fw.write(string);
        }
        fw.close();
    } else { // WE ARE LOOKING AT AN IMAGE/DIRECTORY

    }

也许像这样?

于 2012-11-16T16:50:04.687 回答