ThinkJava-压缩

尽管存在许多种压缩算恙,但是Zip和GZIP可能是最常用的.因此我们可以很容易地使用多

种可读写这些格式的工具来操纵我们的压缩数据。

1 用GZIP进行简单压缩

GZIP接口非常简单, 因此如果我们只想对单个数据流(而不是一系列互异数据)进行压缩,

那么它可能是比较适合的选择。下面是对单个文件进行压缩的例子:

// {Args: GZIPcompress.java}
package com.java.io;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPcompress {
      public static void main(String[] args) throws IOException {
        if(args.length == 0) {
          System.out.println(
            "Usage: \nGZIPcompress file\n" +
            "\tUses GZIP compression to compress " +
            "the file to test.gz");
          System.exit(1);
        }
        BufferedReader in = new BufferedReader(new FileReader(args[0]));
        BufferedOutputStream out = new BufferedOutputStream(
                                          new GZIPOutputStream(
                                            new FileOutputStream("test.gz")));
        System.out.println("Writing file");
        int c;
        while((c = in.read()) != -1){
            out.write(c);
        }
        in.close();
        out.close();
        System.out.println("Reading file");
        BufferedReader in2 = new BufferedReader(
                                  new InputStreamReader(new GZIPInputStream(
                                    new FileInputStream("test.gz"))));
        String s;
        while((s = in2.readLine()) != null){
            System.out.println(s);
        }
        in2.close();
      }
}

压缩类的使用非常直观一一直接将输出流封装成GZlPOutputStream或ZipOutputStream,并将

输入流封装成GZIPInputStream或ZipInputStream即可。其他全部操作就是通常的IO读写。这个例

子把面向字符的流和面向字节的流棍合了起来,输入(in ) 用Reader类,而GZIPOutputStream的

构造器只能接受OutputStream对象,不能接受Writer对象。在打开文件时, GZIPInputStream就会

被转换成Reader.

2.

-----------

时间: 2024-10-13 09:54:01

ThinkJava-压缩的相关文章

【linux相识相知】压缩与打包

我们日常使用window的时候,经常会用到压缩与解压缩,如果要压缩一个文件,右击选择[添加到压缩文件],解压缩则右击选择[解压到当前文件夹],“点点点”就能完成.但是在一个没有装图形化界面的linux操作系统又不能使用“点点点”,那该怎么操作呢?本文就linux中如何使用压缩和打包工具做出解释. 为什么要压缩文件 压缩的目的是为了就是将文件通过压缩算法转变成一个体积更小格式的文件,减小了文件在硬盘上的占用空间,压缩文件的时候,特别的消耗CPU的时钟周期,因为CPU要进行大量的计算,所有压缩也是一

《高可用MySQL》1 – Windows环境下压缩版MySQL安装

近日在读O'REILIY系列的<高可用MySQL>, 自然少不了主从(Master-Slave)配置和横向扩展相关的内容. Master-Slave这东西吧.在很多公司都是标配.开发中基本天天都用.遇到的问题自然也不少(如主从不同步,Master宕机).但操作权限很有限.有些东西,仅仅有自己看了.做了,才干真正知道原理是什么,也才干更好的去把握. 本文是高可用MySQL的第一篇读书笔记,主要记录Windows环境下压缩版MySQL(基于安装版的傻瓜式安装过程这里不再提及)的安装过程. 1. 从

gulp教程(sass,livereload,md5,css压缩,js压缩,img的base64)

环境 node -v  v6.10.3 npm -v  3.10.10 package.json如下: { "name": "zhcsdata", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": &

Photoshop脚本 &gt; 压缩并输出JPEG图片

源自:http://coolketang.com/tutorials/menu2lesson9.php 本节将演示如何使用脚本,将当前文档转换为JPEG格式.首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 接着输入脚本代码: //定义一个变量[document],用来表示Photoshop当前的活动文档. var document = app.activeDocument; //定义一个变量[fileOut],用来表示导出后的GIF图片

第九章、文件与文件系统的压缩与打包

1. 压缩文件的用途与技术 2. Linux 系统常见的压缩命令 2.1 compress 2.2 gzip, zcat 2.3 bzip2, bzcat 3. 打包命令: tar 4. 完整备份工具:dump, restore 5. 光盘写入工具 5.1 mkisofs:创建映像档 5.2 cdrecord:光盘烧录工具 6. 其他常见的压缩与备份工具 6.1 dd 6.2 cpio 7. 重点回顾 1. 压缩文件的用途与技术 2. Linux 系统常见的压缩命令 压缩文件的扩展名大多是:『*

打包和压缩大全

我们在处理文件的时候经常需要打包压缩,打包就是把相关文件放在一起,压缩就是放在一起所占空间太大需要调整.或者有时候我们从互联网上下载一个压缩包需要解包和解压缩.比如说windows里面我们就像有类似的操作,那么我们讨论下linux系统下如何做出相关操作. tar  cvf ab.tar a.txt  b.txt  打包 tar  xvf ab.tar 解开tar包 c创建  v详细信息f文件名x解压文件-----------------------------------------------

linux下的压缩、归档

压缩  bz2.xz.zip.Z 不能压缩目录,压缩后默认删除原文件. gz: gzip /path/filename -d 解压缩 gunzip /paht/some_filename zcat /path/somefile.gz:在不解压的条件下,查看文本文件的内容. bzip2:比gzip有更大压缩比. bzip2 /path/some_filename -d 解压缩 -k 保留原文件 bunzip2 /path/some_filename bzcat /path/somefile.bz2

【C#公共帮助类】ZipHelper 压缩和解压帮助类,经过实战总结出来的代码

关于本文档的说明 本文档基于ICSharpCode.SharpZipLib.dll的封装,常用的解压和压缩方法都已经涵盖在内,都是经过项目实战积累下来的 欢迎传播分享,必须保持原作者的信息,但禁止将该文档直接用于商业盈利. 本人自从几年前走上编程之路,一直致力于收集和总结出好用的框架和通用类库,不管是微软自己的还是第三方的只要实际项目中好用且可以解决实际问题那都会收集好,编写好文章和别人一起分享,这样自己学到了,别人也能学到知识,当今社会很需要知识的搬运工. Email:[email prote

胜利大逃亡(续)(状态压缩bfs)

胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7357    Accepted Submission(s): 2552 Problem Description Ignatius再次被魔王抓走了(搞不懂他咋这么讨魔王喜欢)……这次魔王汲取了上次的教训,把Ignatius关在一个n*m的地牢里,并在地牢的某些地方安装了带

LInux 压缩和解压缩命令

压缩后的文件并不一定比被压缩文件小 常用压缩格式: .zip   .gz    .bz2  [.rar(相对比较先进)] 常用压缩格式: .tar.gz    .tar.bz .zip 格式压缩 zip  压缩文件名 源文件 #压缩文件 zip -r 压缩文件名 源目录 #压缩目录 unzip 压缩文件 # 解压缩 .zip 文件