android內建zip輕鬆實現壓縮解壓
開發過程用到了zip壓縮包,寫了一個工具類,該類可以實現把字串直接壓縮成zip格式,省去了寫入檔案再壓縮的步驟:
/** * * @author shx * 壓縮和解壓縮工具 * */public class ZipUtil {/** * 壓縮方法 * @param str 要壓縮的字串 * @param path路徑 * @throws IOException */public static void compress(String str,String path) throws IOException {if (null == str || str.length() <= 0) {return;}FileOutputStream fileOutputStream = new FileOutputStream(path);GZIPOutputStream gzip = new GZIPOutputStream(fileOutputStream);gzip.write(str.getBytes("utf-8"));gzip.close( );fileOutputStream.close();}/** * 解壓縮 * @param context * @param path * @return */public static String unCompress(Context context,String path) {try {File file = new File(path);if (!file.exists()) {return context.getResources().getString(R.string.FileNotExits);}ByteArrayOutputStream out = new ByteArrayOutputStream();// 建立一個新的輸出資料流FileInputStream fileInputStream = new FileInputStream(path);GZIPInputStream gzip = new GZIPInputStream(fileInputStream);byte[] buffer = new byte[256];int n = 0;// 將未壓縮資料讀入位元組數組while ((n = gzip.read(buffer)) >= 0) {out.write(buffer, 0, n);}return out.toString("utf-8");} catch (Exception e) {e.printStackTrace();}return null;}