Создать ZIP из массива байтов

Я получаю массив байтов, представляющий ZIP-файл, из ответа JSON, отправленного сервером, и на стороне Android я хочу воссоздать ZIP-файл из массива.

Я использую этот код для достижения этой цели, но он не создает ZIP-файл в хранилище моего устройства.

Извлечь массив байтов из JSON:

String zipBinary = mJsonObject.getString("zip");

Путь к файлу для хранения zip-файла:

String unzipLocation = Environment.getExternalStorageDirectory() + "/sample.zip"; 

Основной код:

public CreateZipMultipleFiles(String filePath, byte[] sourceFile) {
    try {
        ByteArrayOutputStream fout = new ByteArrayOutputStream();

        ZipOutputStream zout = new ZipOutputStream(fout);
        ZipEntry ze = new ZipEntry(filePath);
        ze.setSize(sourceFile.length);
        zout.putNextEntry(ze);
        zout.write(sourceFile);
        zout.closeEntry();

        zout.close();

        System.out.println("Zip Byte file has been created!");
    } catch (IOException ioe) {
        System.out.println("IOException :" + ioe);
    }
}

Как я могу достичь этой цели?


person Krunal Shah    schedule 02.03.2013    source источник
comment
какая проблема у вас в этом коде?   -  person Tofeeq Ahmad    schedule 02.03.2013
comment
Вопрос: Файл не создан. Или файл, который вы хотите, не создан?   -  person cjds    schedule 02.03.2013
comment
zip файл не создается   -  person Krunal Shah    schedule 02.03.2013
comment
Почему вы используете поток вывода zip. Конечно, вы можете просто написать байты как есть, поскольку они представляют собой zip-файл, а затем вставить расширение zip в конец.   -  person IAmGroot    schedule 02.03.2013
comment
См. Создание zip-файла с Android или Создайте zip-файл или Android Javadoc на ZipOutputStream.   -  person harpun    schedule 02.03.2013