将ZipinputStream中的位图直接保存到文件

时间:2012-11-16 16:38:47

标签: android android-image

我有一个zip文件,我正在列出并通过使用zis.getNextEntry()遍历流来对每个文件进行排序。

适用于从ZipEntry获取String个对象,我需要的是将副本保存到我的应用程序中的目录。

目录部分我很好,我只需要知道如何直接保存每个位图,而不必解码它并在内存中创建一个Bitmap对象。

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

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

}

提前致谢。

2 个答案:

答案 0 :(得分: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

    }

也许是这样?

答案 1 :(得分: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);
}