Android examples for File Input Output:Zip File
dir To Zip
//package com.java2s; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import android.util.Log; public class Main { private static final int FILE_BUFFER_SIZE = 51200; private static final String TAG = "FileHelper"; private static boolean dirToZip(String baseDirPath, File dir, ZipOutputStream out) throws IOException { if (!dir.isDirectory()) { return false; }/*w w w. j av a2 s. c o m*/ File[] files = dir.listFiles(); if (files.length == 0) { ZipEntry entry = new ZipEntry(getEntryName(baseDirPath, dir)); try { out.putNextEntry(entry); out.closeEntry(); } catch (IOException e) { Log.i(TAG, "Exception, ex: " + e.toString()); } } for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { fileToZip(baseDirPath, files[i], out); } else { dirToZip(baseDirPath, files[i], out); } } return true; } private static String getEntryName(String baseDirPath, File file) { if (!baseDirPath.endsWith(File.separator)) { baseDirPath = baseDirPath + File.separator; } String filePath = file.getAbsolutePath(); if (file.isDirectory()) { filePath = filePath + "/"; } int index = filePath.indexOf(baseDirPath); return filePath.substring(index + baseDirPath.length()); } private static boolean fileToZip(String baseDirPath, File file, ZipOutputStream out) throws IOException { FileInputStream in = null; ZipEntry entry = null; byte[] buffer = new byte[FILE_BUFFER_SIZE]; int bytes_read; try { in = new FileInputStream(file); entry = new ZipEntry(getEntryName(baseDirPath, file)); out.putNextEntry(entry); while ((bytes_read = in.read(buffer)) != -1) { out.write(buffer, 0, bytes_read); } out.closeEntry(); in.close(); } catch (IOException e) { Log.i(TAG, "Exception, ex: " + e.toString()); return false; } finally { if (out != null) { out.closeEntry(); } if (in != null) { in.close(); } } return true; } }