Android 将位图从ZipinputStream直接保存到文件

Android 将位图从ZipinputStream直接保存到文件,android,android-image,Android,Android Image,我有一个zip文件,通过使用zis.getnextery()在流中迭代,列出并排序其中的每个文件 从ZipEntry中获取String对象很好,我需要的是将副本保存到应用程序中的目录中 目录部分我很好,我只需要知道如何立即保存每个位图,而不必解码它并在内存中创建位图对象 这是我获取每个文本文件内容的代码 if (decodeFile) { // WE ARE LOOKING AT A FILE WE CAN DECODE while ((read = zis.read(buffer, 0

我有一个zip文件,通过使用
zis.getnextery()
在流中迭代,列出并排序其中的每个文件

从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

}
提前谢谢

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

    }

也许是这样?

您应该简单地创建一个OutputStream,而不是通过读取字符串将它们直接写入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);
}

这是复制文本文件的一个很好的解决方案,但我如何实现它来复制图像?我没有ZipFile,因为它是从电子邮件打开的。如果字符串是某个文件,我也会读取它,因为我没有保存这些文件。这一点很好,只是复制图像而已