본문 바로가기

Mobile/Android

압축 풀기

 final int BUFFER_SIZE = 4096;
     
    BufferedOutputStream bufferedOutputStream = null;
    FileInputStream fileInputStream;
    try
    {
        fileInputStream = new FileInputStream(src);
        ZipInputStream zipInputStream = new ZipInputStream(new BufferedInputStream(fileInputStream));
        ZipEntry zipEntry;
         
        while ((zipEntry = zipInputStream.getNextEntry()) != null)
        {
            String zipEntryName = zipEntry.getName();
            File file = new File(dest + File.separator + zipEntryName);
             
            if (file.exists())
            {
                 
            }
            else
            {
                if (zipEntry.isDirectory())
                {
                    file.mkdirs();
                }
                else
                {
                    byte buffer[] = new byte[BUFFER_SIZE];
                    FileOutputStream fileOutputStream = new FileOutputStream(file);
                    bufferedOutputStream = new BufferedOutputStream(fileOutputStream, BUFFER_SIZE);
                    int count;
                     
                    while ((count = zipInputStream.read(buffer, 0, BUFFER_SIZE)) != -1)
                    {
                        bufferedOutputStream.write(buffer, 0, count);
                    }
                     
                    bufferedOutputStream.flush();
                    bufferedOutputStream.close();
                }
            }
        }
        zipInputStream.close();
        File s = new File(src);
        s.delete();
    } catch (FileNotFoundException e)
    {
        e.printStackTrace();
    } catch (IOException e)
    {
        e.printStackTrace();