当前位置: 首页 > news >正文

dedecms 招聘网站医疗今科云平台网站建设技术开发

dedecms 招聘网站,医疗今科云平台网站建设技术开发,怎么攻击网站,网页设计与网站建设区别转载自 Java压缩技术#xff08;六#xff09; BZIP2——Commons实现 BZip2与GZip有什么渊源#xff0c;我这里不深究。我要说的只是#xff0c;这两种算法#xff0c;你在linux下都可以找到相应的操作命令。GZip 压缩 gzip file 将得到压缩文件file.gz六 BZIP2——Commons实现 BZip2与GZip有什么渊源我这里不深究。我要说的只是这两种算法你在linux下都可以找到相应的操作命令。GZip 压缩 gzip file 将得到压缩文件file.gz同时删除文件file 解压缩 gzip -d file.gz 将得到压缩文件file同时删除文件file.gz BZip2与之相当几乎没有什么差别 BZip2 压缩 bzip2 file 将得到压缩文件file.bz2同时删除文件file 解压缩 bzip2 -d file.bz2 将得到压缩文件file同时删除文件file.bz2 除了命令不同外几乎是一样的再说实现。GZIP是JDK自带的算法实现但BZip2则不曾享受这个待遇。不过强大的Apache坚决不会让这些个在Linux下如鱼得水的算法在Java世界中销声匿迹。Apache在Commons Compress中提供了相应的实现。同时还包括众所周知的tar、cpio、zip等算法实现其中最为丰富的当属zip实现了我继续依葫芦画瓢 BZip2CompressorOutputStream类用于压缩 BZip2CompressorInputStream类用于解压缩 先说压缩实现BZip2CompressorOutputStream只有一个方法用于压缩就是带定长的write方法。简单调用如下文所示  Java代码  /**  * 数据压缩  *   * param is  * param os  * throws Exception  */  public static void compress(InputStream is, OutputStream os)          throws Exception {        BZip2CompressorOutputStream gos  new BZip2CompressorOutputStream(os);        int count;      byte data[]  new byte[BUFFER];      while ((count  is.read(data, 0, BUFFER)) ! -1) {          gos.write(data, 0, count);      }        gos.finish();        gos.flush();      gos.close();  }  与GZip实现有何差别除了换掉了GZIPOutputStream没有任何差别。解压缩就更不用说了BZip2CompressorInputStream提供了一个带定长的read方法。简单调用如下文所示 Java代码/**  * 数据解压缩  *   * param is  * param os  * throws Exception  */  public static void decompress(InputStream is, OutputStream os)          throws Exception {        BZip2CompressorInputStream gis  new BZip2CompressorInputStream(is);        int count;      byte data[]  new byte[BUFFER];      while ((count  gis.read(data, 0, BUFFER)) ! -1) {          os.write(data, 0, count);      }        gis.close();  }  嗯没什么难度 IT这行就是这样只要你肯用心能触类旁通就能融会贯通给一个完整实现 Java代码/**  * 2010-4-15  */  package org.zlex.commons.compress.compress;    import java.io.ByteArrayInputStream;  import java.io.ByteArrayOutputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;  import java.io.InputStream;  import java.io.OutputStream;    import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;  import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;    /**  * BZip2工具  *   * author  a hrefmailto:zlex.donglianggmail.com梁栋/a  * since 1.0  */  public abstract class BZip2Utils {        public static final int BUFFER  1024;      public static final CharSequence EXT  .bz2;        /**      * 数据压缩      *       * param data      * return      * throws Exception      */      public static byte[] compress(byte[] data) throws Exception {          ByteArrayInputStream bais  new ByteArrayInputStream(data);          ByteArrayOutputStream baos  new ByteArrayOutputStream();            // 压缩          compress(bais, baos);            byte[] output  baos.toByteArray();            baos.flush();          baos.close();            bais.close();            return output;      }        /**      * 文件压缩      *       * param file      * throws Exception      */      public static void compress(File file) throws Exception {          compress(file, true);      }        /**      * 文件压缩      *       * param file      * param delete      *            是否删除原始文件      * throws Exception      */      public static void compress(File file, boolean delete) throws Exception {          FileInputStream fis  new FileInputStream(file);          FileOutputStream fos  new FileOutputStream(file.getPath()  EXT);            compress(fis, fos);            fis.close();          fos.flush();          fos.close();            if (delete) {              file.delete();          }      }        /**      * 数据压缩      *       * param is      * param os      * throws Exception      */      public static void compress(InputStream is, OutputStream os)              throws Exception {            BZip2CompressorOutputStream gos  new BZip2CompressorOutputStream(os);            int count;          byte data[]  new byte[BUFFER];          while ((count  is.read(data, 0, BUFFER)) ! -1) {              gos.write(data, 0, count);          }            gos.finish();            gos.flush();          gos.close();      }        /**      * 文件压缩      *       * param path      * throws Exception      */      public static void compress(String path) throws Exception {          compress(path, true);      }        /**      * 文件压缩      *       * param path      * param delete      *            是否删除原始文件      * throws Exception      */      public static void compress(String path, boolean delete) throws Exception {          File file  new File(path);          compress(file, delete);      }        /**      * 数据解压缩      *       * param data      * return      * throws Exception      */      public static byte[] decompress(byte[] data) throws Exception {          ByteArrayInputStream bais  new ByteArrayInputStream(data);          ByteArrayOutputStream baos  new ByteArrayOutputStream();            // 解压缩            decompress(bais, baos);            data  baos.toByteArray();            baos.flush();          baos.close();            bais.close();            return data;      }        /**      * 文件解压缩      *       * param file      * throws Exception      */      public static void decompress(File file) throws Exception {          decompress(file, true);      }        /**      * 文件解压缩      *       * param file      * param delete      *            是否删除原始文件      * throws Exception      */      public static void decompress(File file, boolean delete) throws Exception {          FileInputStream fis  new FileInputStream(file);          FileOutputStream fos  new FileOutputStream(file.getPath().replace(EXT,                  ));          decompress(fis, fos);          fis.close();          fos.flush();          fos.close();            if (delete) {              file.delete();          }      }        /**      * 数据解压缩      *       * param is      * param os      * throws Exception      */      public static void decompress(InputStream is, OutputStream os)              throws Exception {            BZip2CompressorInputStream gis  new BZip2CompressorInputStream(is);            int count;          byte data[]  new byte[BUFFER];          while ((count  gis.read(data, 0, BUFFER)) ! -1) {              os.write(data, 0, count);          }            gis.close();      }        /**      * 文件解压缩      *       * param path      * throws Exception      */      public static void decompress(String path) throws Exception {          decompress(path, true);      }        /**      * 文件解压缩      *       * param path      * param delete      *            是否删除原始文件      * throws Exception      */      public static void decompress(String path, boolean delete) throws Exception {          File file  new File(path);          decompress(file, delete);      }    }  对应再来个测试用例测试用例如下所示 Java代码 /**  * 2010-4-13  */  package org.zlex.commons.compress.compress;    import static org.junit.Assert.assertEquals;    import java.io.DataInputStream;  import java.io.File;  import java.io.FileInputStream;  import java.io.FileOutputStream;    import org.junit.Test;    /**  * BZip2  *   * author a hrefmailto:zlex.donglianggmail.com梁栋/a  * since 1.0  */  public class BZip2UtilsTest {        private String inputStr  zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org;        Test      public final void testDataCompress() throws Exception {            byte[] input  inputStr.getBytes();          System.err.println(原文:\t  inputStr);          System.err.println(长度:\t  input.length);            byte[] data  BZip2Utils.compress(input);          System.err.println(压缩后:\t);          System.err.println(长度:\t  data.length);            byte[] output  BZip2Utils.decompress(data);          String outputStr  new String(output);          System.err.println(解压缩后:\t  outputStr);          System.err.println(长度:\t  output.length);            assertEquals(inputStr, outputStr);        }        Test      public final void testFileCompress() throws Exception {            FileOutputStream fos  new FileOutputStream(d:/f.txt);            fos.write(inputStr.getBytes());          fos.flush();          fos.close();            BZip2Utils.compress(d:/f.txt);            BZip2Utils.decompress(d:/f.txt.bz2);            File file  new File(d:/f.txt);            FileInputStream fis  new FileInputStream(file);            DataInputStream dis  new DataInputStream(fis);            byte[] data  new byte[(int) file.length()];          dis.readFully(data);            fis.close();            String outputStr  new String(data);          assertEquals(inputStr, outputStr);      }  }  虽然两种算法在代码实现上几乎没有什么差别但在压缩上想要看到效果还真让我费了点事控制台输出如下所示 引用原文: zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org长度: 529 压缩后: 长度: 76 解压缩后: zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org,zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org长度: 529 529字节--76字节 GZIP本身不需要太长的内容经过压缩就能体现出压缩效果而BZip2则需要压缩很长的内容时才能体现其压缩效果这说明BZip2更适合大数据压缩Commons Compress不仅支持BZip2算法实现同时也支持GZip算法实现。对于GZip算法实现与Java原生实现基本上没有什么差别。其源代码分析仅仅是做了简单的包装。 不过有必要提及的一点是Commons Compress为压缩GZip和BZip2构建了压缩算法工厂类 CompressorStreamFactory 。通过这个类可以方便的构建GZip和BZip2的输入输出流关键字分别为“gz”和“bzip2”。 GZip Java代码 // GzipCompressorInputStream        CompressorInputStream gzipIn  new CompressorStreamFactory()          .createCompressorInputStream(gz, is);    // GzipCompressorOutputStream  CompressorOutputStream gzipOut  new CompressorStreamFactory()          .createCompressorOutputStream(gz, os);  BZip2 Java代码 // BZip2CompressorInputStream  CompressorInputStream bzip2In  new CompressorStreamFactory()          .createCompressorInputStream(bzip2, is);    // BZip2CompressorOutputStream  CompressorOutputStream bzip2Out  new CompressorStreamFactory()          .createCompressorOutputStream(bzip2, os);  GZip和BZip2在算法实现步骤上基本上没有什么差别如果有必要统一可按上述代码实现BZip2Utils.rar (1.8 KB)下载次数: 374
http://www.zqtcl.cn/news/749709/

相关文章:

  • 科技公司网站系统个人网站模板大全
  • 建网站源码建站详解做加油机公司网站
  • 北海做网站有哪家网站布局策划案
  • 做app网站的软件有哪些内容吗本地网站建设公司
  • 做服装团购有哪些网站有哪些网页端二维码在哪里
  • 石材网站建设方案科室建设网站
  • 梧州住房和建设局网站网站目录文件
  • 有没有做生鲜配送的网站wordpress调用摘要
  • 建设社团网站的可行性分析沈阳网站建设企业
  • 青岛知名网站建设公司优化大师有必要花钱吗
  • pc网站做app京东海淀区
  • 效果好的网站建设公萝岗企业网站建设
  • wordpress个人展示网站6新西兰网站后缀
  • 为什么自己做的网站别人打不开三门峡市湖滨区建设局网站
  • 长春网长春网站建设络推广工程建设国家标准网站
  • 微网站开发 mui框架网站备案幕布拍照是什么
  • 北京天通苑 做网站西安百度网站建设
  • 辽阳建设网站学校 网站 建设 目的
  • 建设电影网站赚钱公司简介模板免费word简易
  • 响应式网站设计的主页自己做装修效果图app软件
  • 做网站最简单的方法做网站开发挣钱吗
  • 网站建设基础入门国内免费的ip地址
  • wordpress 付费剧集网站坐什么网站能用到html5
  • 孝感房产网站建设wordpress E405
  • 做窗帘网站图片大全WordPress一键安装安全
  • 怎样查询网站的备案号广西住房和城乡建设厅网站证件
  • 网站区域名怎么注册网站群建设 中标
  • 官方网站 建设情况汇报网页设计开发培训
  • 门户网站的细分模式有房价暴跌开始了
  • 公司备案查询网站备案江苏省网站备案系统