Java實用篇------文件的壓縮

  生活當中的我們經常使用一個寫文件壓縮和解壓的工具,也就是可視化的工具。比如,好壓還有360等等使我們比較常見的工具。

  那麼一個工具的使用背後往往是代碼或者說是程序在操控的,我們習慣了司空見慣的東西,比如能夠使用工具的東西我們肯定不會使用手動操作來完成,能夠機械化的東西我們也不會使用人工來完成。

  但是這些東西使用的前提,那就是必須要人 先製造出這些東西,我們才能使用呢,所以工具不是從石頭縫裏蹦出來的,是需要人們進行創造的。

  那麼大家使用的壓縮工具其實是已經有人編寫出來的成過了,最近在項目中就遇到了這個問題,什麼問題呢?就是將商家制作的二維碼進行導出,因爲製作的二維碼的張數可能達到了上百萬張,如果直接導出,那麼可想而知需要消耗的時間以及佔用空間是很大的,那麼爲了可以節約空間和壓縮的時間,我們可以將其壓縮到一個文件中。在這裏可是沒有壓縮工具可以直接使用的,對於一個平臺來說,商家登錄製作的二維碼是放在只有這個平臺開發人員知道的地方,我們總不能讓每個商戶登錄去哪裏進行壓縮吧?

  所以這個時候我們就要知道壓縮是怎麼實現的了。

public class ZipUtil {
    //壓縮文件
    public static void zip(String fromPath,String zipFile,List<String> pictureName)throws Exception{
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
        int len = 0;
        InputStream is=null;
        for(int i=0;i<pictureName.size();i++) {
            zos.setComment("zip測試for單個文件");
            ZipEntry entry = new ZipEntry( pictureName.get(i));
            zos.putNextEntry(entry);
            is= new FileInputStream(fromPath+"/" + pictureName.get(i));
            while ((len = is.read()) != -1)
                zos.write(len);
        }
        zos.flush();
        is.close();
        zos.close();
    }
}

  參數講解:StringfromPath,String zipFile,List<String> pictureName;

   Frompath:我們獲取二維碼的地址;

   Zipfile:我們將壓縮完的文件存放的地址;

   PictureName:是我們進行要壓縮的二維碼圖片;

  這樣就知道怎麼使用了吧?

  調用方法的時候只要將參數傳入即可。

ZipUtil .zip(fromPath,zipFile, pictureName)。

   是不是清楚明白了呢?但是這種方式只是適合的是壓縮子集中沒有目錄的文件。


發佈了218 篇原創文章 · 獲贊 29 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章