最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA中的deflate壓縮實現(xiàn)方法

 更新時間:2016年09月01日 09:13:01   投稿:jingxian  
下面小編就為大家?guī)硪黄狫AVA中的deflate壓縮實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在文件的傳輸過程中,為了使大文件能夠更加方便快速的傳輸,一般采用壓縮的辦法來對文件壓縮后再傳輸,JAVA中的java.util.zip包中的Deflater和Inflater類為使用者提供了DEFLATE算法的壓縮功能,以下是自已編寫的壓縮和解壓縮實現(xiàn),并以壓縮文件內容為例說明,其中涉及的具體方法可查看JDK的API了解說明。

/**
   * 
   * @param inputByte
   *      待解壓縮的字節(jié)數(shù)組
   * @return 解壓縮后的字節(jié)數(shù)組
   * @throws IOException
   */
  public static byte[] uncompress(byte[] inputByte) throws IOException {
    int len = 0;
    Inflater infl = new Inflater();
    infl.setInput(inputByte);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] outByte = new byte[1024];
    try {
      while (!infl.finished()) {
        // 解壓縮并將解壓縮后的內容輸出到字節(jié)輸出流bos中
        len = infl.inflate(outByte);
        if (len == 0) {
          break;
        }
        bos.write(outByte, 0, len);
      }
      infl.end();
    } catch (Exception e) {
      //
    } finally {
      bos.close();
    }
    return bos.toByteArray();
  }

  /**
   * 壓縮.
   * 
   * @param inputByte
   *      待壓縮的字節(jié)數(shù)組
   * @return 壓縮后的數(shù)據
   * @throws IOException
   */
  public static byte[] compress(byte[] inputByte) throws IOException {
    int len = 0;
    Deflater defl = new Deflater();
    defl.setInput(inputByte);
    defl.finish();
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] outputByte = new byte[1024];
    try {
      while (!defl.finished()) {
        // 壓縮并將壓縮后的內容輸出到字節(jié)輸出流bos中
        len = defl.deflate(outputByte);
        bos.write(outputByte, 0, len);
      }
      defl.end();
    } finally {
      bos.close();
    }
    return bos.toByteArray();
  }

  public static void main(String[] args) {
    try {
      FileInputStream fis = new FileInputStream("D:\\testdeflate.txt");
      int len = fis.available();
      byte[] b = new byte[len];
      fis.read(b);
      byte[] bd = compress(b);
      // 為了壓縮后的內容能夠在網絡上傳輸,一般采用Base64編碼
      String encodestr = Base64.encodeBase64String(bd);
      byte[] bi = uncompress(Base64.decodeBase64(encodestr));
      FileOutputStream fos = new FileOutputStream("D:\\testinflate.txt");
      fos.write(bi);
      fos.flush();
      fos.close();
      fis.close();
    } catch (Exception e) {
      //
    }
  }

以上這篇JAVA中的deflate壓縮實現(xiàn)方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中注解@JsonFormat的用法詳解

    Java中注解@JsonFormat的用法詳解

    這篇文章主要給大家介紹了關于Java中注解@JsonFormat用法的相關資料,以及分享了@JsonFormat 將枚舉序列化為對象的方法,文中給出了詳細的代碼實例,需要的朋友可以參考下
    2023-01-01
  • Java單例模式的8種寫法(推薦)

    Java單例模式的8種寫法(推薦)

    這篇文章主要介紹了Java單例模式的8種寫法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java線程的start方法回調run方法的操作技巧

    Java線程的start方法回調run方法的操作技巧

    面試過程中經常會被面試官問到為什么我們調用start()方法時會執(zhí)行run()方法,為什么不能直接調用run()方法,問的一頭霧水,今天小編給大家介紹下Java線程的start方法回調run方法的操作技巧,需要的朋友參考下吧
    2017-11-11
  • 解決IDEA右鍵沒有創(chuàng)建新的package選項的情況

    解決IDEA右鍵沒有創(chuàng)建新的package選項的情況

    這篇文章主要介紹了解決IDEA右鍵沒有創(chuàng)建新的package選項的情況,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • springboot中@Async默認線程池導致OOM問題

    springboot中@Async默認線程池導致OOM問題

    這篇文章主要介紹了springboot中@Async默認線程池導致OOM問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • MyBatis Plus整合Redis實現(xiàn)分布式二級緩存的問題

    MyBatis Plus整合Redis實現(xiàn)分布式二級緩存的問題

    Mybatis內置的二級緩存在分布式環(huán)境下存在分布式問題,無法使用,但是我們可以整合Redis來實現(xiàn)分布式的二級緩存,這篇文章給大家介紹MyBatis Plus整合Redis實現(xiàn)分布式二級緩存,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • sin(x)如何求解的java代碼實現(xiàn)方法

    sin(x)如何求解的java代碼實現(xiàn)方法

    這篇文章主要為大家介紹了sin(x)如何求解的java代碼實現(xiàn)方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Idea配置Maven阿里云鏡像加速的實現(xiàn)

    Idea配置Maven阿里云鏡像加速的實現(xiàn)

    這篇文章主要介紹了Idea配置Maven阿里云鏡像加速的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Java 替換word文檔文字并指定位置插入圖片

    Java 替換word文檔文字并指定位置插入圖片

    這篇文章主要介紹了Java 替換word文檔文字,指定位置插入圖片功能,本文通過實例代碼給大家講解,需要的朋友可以參考下
    2018-02-02
  • JavaWeb亂碼問題的終極解決方案(推薦)

    JavaWeb亂碼問題的終極解決方案(推薦)

    這篇文章主要給大家介紹了關于JavaWeb亂碼問題的終極解決方案,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaWeb具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04

最新評論

江口县| 昌江| 阿荣旗| 阜阳市| 微博| 黄大仙区| 岳西县| 和龙市| 嵊泗县| 固阳县| 绥芬河市| 甘肃省| 贵南县| 丰都县| 和林格尔县| 长武县| 平原县| 靖远县| 桂林市| 莎车县| 漳州市| 延长县| 濉溪县| 宁化县| 德钦县| 临夏市| 麻栗坡县| 怀化市| 昌都县| 保德县| 乌兰察布市| 秦皇岛市| 大方县| 纳雍县| 达州市| 岑巩县| 越西县| 邹平县| 赫章县| 湘潭市| 沂南县|