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

网站建设和后台空间管理关系做网站怎样找

网站建设和后台空间管理关系,做网站怎样找,淮北市官网,南昌网站建设公司资讯转载自 Java压缩技术#xff08;四#xff09; GZIP——Java原生实现 GZIP常常用在linxu环境下#xff0c;是一种非常简单的压缩算法。在Java实现API中#xff0c;它仅仅包含两个实现类#xff1a;GZIPInputStream和GZIPOutputStream。 GZIPOutputStream类用于压缩 GZIPI…转载自  Java压缩技术四 GZIP——Java原生实现 GZIP常常用在linxu环境下是一种非常简单的压缩算法。在Java实现API中它仅仅包含两个实现类GZIPInputStream和GZIPOutputStream。 GZIPOutputStream类用于压缩 GZIPInputStream类用于解压缩 先说压缩实现GZIPOutputStream只有一个方法用于压缩就是带定长的write方法。简单调用如下文所示  Java代码 /**  * 数据压缩  *   * param is  * param os  * throws Exception  */  public static void compress(InputStream is, OutputStream os)          throws Exception {        GZIPOutputStream gos  new GZIPOutputStream(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();  }  记得完成操作后调用finish方法和flush方法核心的压缩实现就这么多对于解压缩GZIPInputStream也对应GZIPOutputStream提供了一个带定长的read方法。简单调用如下文所示 Java代码  /**  * 数据解压缩  *   * param is  * param os  * throws Exception  */  public static void decompress(InputStream is, OutputStream os)          throws Exception {        GZIPInputStream gis  new GZIPInputStream(is);        int count;      byte data[]  new byte[BUFFER];      while ((count  gis.read(data, 0, BUFFER)) ! -1) {          os.write(data, 0, count);      }        gis.close();  }  就这么简单 核心内容完毕 顺便补充一下在liunx下操作gzip命令 gzip file 用于压缩如 gzip a.txt 将得到文件 a.txt.gz同时删除文件a.txt!。gzip -d file.gz 用于解压缩如 gzip -d a.txt.gz 将得到文件 a.txt同时删除文件a.txt.gz!。根据这些特性我补充了相应的文件操作实现详见下文完整实现 Java代码  /**  * 2010-4-13  */  package org.zlex.commons.io;    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 java.util.zip.GZIPInputStream;  import java.util.zip.GZIPOutputStream;    /**  * GZIP工具  *   * author a hrefmailto:zlex.donglianggmail.com梁栋/a  * since 1.0  */  public abstract class GZipUtils {        public static final int BUFFER  1024;      public static final String EXT  .gz;        /**      * 数据压缩      *       * 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 {            GZIPOutputStream gos  new GZIPOutputStream(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 {            GZIPInputStream gis  new GZIPInputStream(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;    /**  * author a hrefmailto:zlex.donglianggmail.com梁栋/a  * since 1.0  */  public class GZipUtilsTest {        private String inputStr  zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org;        Test      public final void testDataCompress() throws Exception {            System.err.println(原文:\t  inputStr);            byte[] input  inputStr.getBytes();          System.err.println(长度:\t  input.length);            byte[] data  GZipUtils.compress(input);          System.err.println(压缩后:\t);          System.err.println(长度:\t  data.length);            byte[] output  GZipUtils.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();            GZipUtils.compress(d:/f.txt, false);            GZipUtils.decompress(d:/f.txt.gz, false);            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);      }  }  结果如何 先看testDataCompress()方法控制台输出结果。 控制台输出如下 引用原文: zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org 长度: 52 压缩后: 长度: 45 解压缩后: zlexzlex.org,snowolfzlex.org,zlex.snowolfzlex.org 长度: 52 这里使用英文字符做测试当输入字符串的字节数大于50左右时压缩效果明显如果这里使用中文压缩可能当压缩上千字节时方能体现出压缩效果 对于文件操作朋友们可以自行实验我代码里的实现是按照gzip命令来的 举例来说 压缩时将文件a.txt压缩为a.txt.gz同时删除文件a.txt。 解压缩时将文件a.txt.gz解压缩为a.txt同时删除文件a.txt.gz。 注意执行testFileCompress方法查看产生的文件你大可以放到linux上去做验证commons也提供了GZIP算法的实现甚至更多种压缩算法tar、bzip2等的实现有机会我将继续整理gzip.rar (1.5 KB)下载次数: 516
http://www.pierceye.com/news/649996/

相关文章:

  • 长春建设网站公司哪家好学校网站建设实施方案
  • 邯郸网站优化怎么用建设通网站会员共享密码
  • 怎么使自己做的网站有音乐简易 建站
  • 如何做免费网站制作郑州网站建设搜索优化
  • 北京网站制作17页谈谈对seo的理解
  • 西安专业建网站网站可信度必须做吗
  • 做神马网站如何做网站的推广
  • 如何提高网站排名的方法建设一个商业网站费用
  • 电商网站平台有哪些做自己的第一个网站
  • 源码资源下载站百度指数 多少流量 网站名
  • 合肥比较好的网站建设公司青阳网站建设
  • 上海地产网站建设甘肃建设厅网站二级建造师报名时间
  • 扬州网站建设推广泊头网站建设甘肃
  • 什么行业要做网站建设推广这些水墨网站设计欣赏
  • 渠道网站wap百度
  • 在网站上如何做天气预报栏wordpress 分类列表
  • 做网站需要投资多少钱做网站的销售团队
  • 苏州哪个公司做门户网站seo优化方案报价
  • 电力建设官方网站做网站送优化
  • 门户网站建设模式包括网站群和中企动力企业邮箱登陆首页
  • 做调查网站的问卷哪个给的钱高wordpress邮箱注册功能
  • 上海php网站开发基于php网站建设
  • 大丰专业做网站做旅游网站当地人服务赚钱吗
  • 长沙网站制作公司推荐seo关键词排名优化
  • 内蒙古住房与城乡建设部网站广州十大软件公司排名
  • 营销型网站 易网拓德阳做网站
  • 网站建设seo虾哥网络购物网站技术实施方案
  • 门户网站框架下载陕西省建设工会网站
  • 网站有信心做的更好做外贸到什么网站上发布比较好
  • wex5做网站wordpress页面的设置