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

东莞哪里能学建设网站集团公司网站建设品牌

东莞哪里能学建设网站,集团公司网站建设品牌,易云巢做网站公司,网站更改公司需要重新备案吗原文#xff1a;http://www.cnblogs.com/visec479/p/4112881.html#3069573Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术#xff0c;可以对单个文件和任意级联文件夹进行压缩和解压#xff0c;对于一些初学者来说是个很不错的实例。zip扮演着归档和压缩两…原文http://www.cnblogs.com/visec479/p/4112881.html#3069573Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术可以对单个文件和任意级联文件夹进行压缩和解压对于一些初学者来说是个很不错的实例。zip扮演着归档和压缩两个角色gzip并不将文件归档仅只是对单个文件进行压缩所以在UNIX平台上命令tar通常用来创建一个档案文件然后命令gzip来将档案文件压缩。Java I/O类库还收录了一些能读写压缩格式流的类。要想提供压缩功能只要把它们包在已有的I/O类的外面就行了。这些类不是Reader和Writer而是InputStream和OutStreamput的子类。这是因为压缩算法是针对byte而不是字符的。相关类与接口Checksum 接口被类Adler32和CRC32实现的接口Adler32 使用Alder32算法来计算Checksum数目CRC32 使用CRC32算法来计算Checksum数目CheckedInputStream InputStream派生类可得到输入流的校验和Checksum用于校验数据的完整性CheckedOutputStream OutputStream派生类可得到输出流的校验和Checksum 用于校验数据的完整性DeflaterOutputStream 压缩类的基类。ZipOutputStream DeflaterOutputStream的一个子类把数据压缩成Zip文件格式。GZIPOutputStream DeflaterOutputStream的一个子类把数据压缩成GZip文件格式InflaterInputStream 解压缩类的基类ZipInputStream InflaterInputStream的一个子类能解压缩Zip格式的数据GZIPInputStream InflaterInputStream的一个子类能解压缩Zip格式的数据ZipEntry 类表示 ZIP 文件条目ZipFile 类此类用于从 ZIP 文件读取条目使用ZIP对多个文件进行压缩与解压Java对Zip格式类库支持得比较全面得用它可以把多个文件压缩成一个压缩包。这个类库使用的是标准Zip格式所以能与很多的压缩工具兼容。ZipOutputStream类有设置压缩方法以及在压缩方式下使用的压缩级别zipOutputStream.setMethod(int method)设置用于条目的默认压缩方法。只要没有为单个 ZIP 文件条目指定压缩方法就使用ZipOutputStream所设置的压缩方法来存储默认值为 ZipOutputStream.DEFLATED(表示进行压缩存储)还可以设置成STORED(表示仅打包归档存储)。ZipOutputStream在设置了压缩方法为DEFLATED后我们还可以进一步使用setLevel(int level)方法来设置压缩级别压缩级别值为0-9共10个级别(值越大表示压缩越利害)默认为Deflater.DEFAULT_COMPRESSION-1。当然我们也可以通过条目ZipEntry的setMethod方法为单个条件设置压缩方法。类ZipEntry描述了存储在ZIP文件中的压缩文件。类中包含有多种方法可以用来设置和获得ZIP条目的信息。类ZipEntry是被ZipFile[zipFile.getInputStream(ZipEntry entry)]和ZipInputStream使用来读取ZIP文件ZipOutputStream来写入ZIP文件的。有以下这些有用的方法getName()返回条目名称、isDirectory()如果为目录条目则返回 true(目录条目定义为其名称以 / 结尾的条目)、setMethod(int method) 设置条目的压缩方法可以为 ZipOutputStream.STORED 或 ZipOutputStream .DEFLATED。下面实例我们使用了apache的zip工具包(所在包为ant.jar )因为java类型自带的不支持中文路径不过两者使用的方式是一样的只是apache压缩工具多了设置编码方式的接口其他基本上是一样的。另外如果使用org.apache.tools.zip.ZipOutputStream来压缩的话我们只能使用org.apache.tools.zip.ZipEntry来解压而不能使用java.util.zip.ZipInputStream来解压读取了当然apache并未提供ZipInputStream类。文件压缩package gizAction;import java.io.*;import java.util.zip.*;/*** author Dana·Li* * 程序实现了ZIP压缩[compression]* * 大致功能包括用了多态递归等JAVA核心技术可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。* * 在本段代码中实现的是压缩部分*/public class ZipCompressing {private int k 1; // 定义递归次数变量private void zip(String zipFileName, File inputFile) throws Exception {System.out.println(压缩中...);ZipOutputStream out new ZipOutputStream(new FileOutputStream(zipFileName));BufferedOutputStream bo new BufferedOutputStream(out);zip(out, inputFile, inputFile.getName(), bo);bo.close();out.close(); // 输出流关闭System.out.println(压缩完成);}private void zip(ZipOutputStream out, File f, String base,BufferedOutputStream bo) throws Exception { // 方法重载if (f.isDirectory()){File[] fl f.listFiles();if (fl.length 0){out.putNextEntry(new ZipEntry(base /)); // 创建zip压缩进入点baseSystem.out.println(base /);}for (int i 0; i fl.length; i) {zip(out, fl[i], base / fl[i].getName(), bo); // 递归遍历子文件夹}System.out.println(第 k 次递归);k;} else {out.putNextEntry(new ZipEntry(base)); // 创建zip压缩进入点baseSystem.out.println(base);FileInputStream in new FileInputStream(f);BufferedInputStream bi new BufferedInputStream(in);int b;while ((b bi.read()) ! -1) {bo.write(b); // 将字节流写入当前zip目录}bi.close();in.close(); // 输入流关闭}}/*** 测试* param args*/public static void main(String[] args) {ZipCompressing book new ZipCompressing();try {book.zip(F:\\ziptest.zip,new File(F:\\ziptest));} catch (Exception e) {e.printStackTrace();}}}文件解压package gizAction;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipInputStream;/*** author Dana·Li* * 程序实现了ZIP解压[decompression]* * 大致功能包括用了多态递归等JAVA核心技术可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。* * 在本段代码中实现的是解压部分*/public class zipDecompressing {public static void main(String[] args) {// TODO Auto-generated method stublong startTimeSystem.currentTimeMillis();try {ZipInputStream Zinnew ZipInputStream(new FileInputStream(F:\\ziptest.zip));//输入源zip路径BufferedInputStream Binnew BufferedInputStream(Zin);String ParentF:\\ziptest\\; //输出路径(文件夹目录)File Foutnull;ZipEntry entry;try {while((entry Zin.getNextEntry())!null !entry.isDirectory()){Foutnew File(Parent,entry.getName());if(!Fout.exists()){(new File(Fout.getParent())).mkdirs();}FileOutputStream outnew FileOutputStream(Fout);BufferedOutputStream Boutnew BufferedOutputStream(out);int b;while((bBin.read())!-1){Bout.write(b);}Bout.close();out.close();System.out.println(Fout解压成功);}Bin.close();Zin.close();} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}long endTimeSystem.currentTimeMillis();System.out.println(耗费时间 (endTime-startTime) ms);}}用GZIP进行对单个文件压缩GZIP的接口比较简单因此如果你只需对一个流进行压缩的话可以使用它。当然它可以压缩字符流与可以压缩字节流下面是一个对GBK编码格式的文本文件进行压缩的。压缩类的用法非常简单只要用GZIPOutputStream 或ZipOutputStream把输出流包起来再用GZIPInputStream 或ZipInputStream把输入流包起来就行了。剩下的都是些普通的I/O操作。import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileOutputStream;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 {//做准备压缩一个字符文件注这里的字符文件要是GBK编码方式的BufferedReader in new BufferedReader(new InputStreamReader(new FileInputStream(e:/tmp/source.txt), GBK));//使用GZIPOutputStream包装OutputStream流使其具体压缩特性最后会生成test.txt.gz压缩包//并且里面有一个名为test.txt的文件BufferedOutputStream out new BufferedOutputStream(new GZIPOutputStream(new FileOutputStream(test.txt.gz)));System.out.println(开始写压缩文件...);int c;while ((c in.read()) ! -1) {/** 注这里是压缩一个字符文件前面是以字符流来读的不能直接存入c因为c已是Unicode* 码这样会丢掉信息的(当然本身编码格式就不对)所以这里要以GBK来解后再存入。*/out.write(String.valueOf((char) c).getBytes(GBK));}in.close();out.close();System.out.println(开始读压缩文件...);//使用GZIPInputStream包装InputStream流使其具有解压特性BufferedReader in2 new BufferedReader(new InputStreamReader(new GZIPInputStream(new FileInputStream(test.txt.gz)), GBK));String s;//读取压缩文件里的内容while ((s in2.readLine()) ! null) {System.out.println(s);}in2.close();}}
http://www.zqtcl.cn/news/528454/

相关文章:

  • 石家庄网站seo服务免费10大看盘软件
  • 自己做网站卖什么给个网站好人有好报2020免费
  • 网站源码安装步骤网站开发用c 语言
  • 网站首页是什么产品网络推广方案
  • 网站首页制作方案南通市规划建设局网站
  • 网站建设费用兴田德润团队西宁网站策划公司
  • 手机价格网站建设用别人备案域名做违法网站
  • 成都武侯区建设厅官方网站石家庄住房和城乡建设部网站
  • 前端做网站的步骤酉阳网站建设
  • 湖北省住房与建设厅网站php做网站访问记录
  • 做网站的公司没有技术吉林北京网站建设
  • 产品设计培训机构哪家好贵州整站优化seo平台
  • 天津网站制作推广wordpress 果酱
  • 写给初学网站开发们的一封信企业网站建设 ppt
  • 做装修网站多少钱做网站百度一下
  • 用asp做网站的可行性分析9免费建网站
  • 网站域名注册商查询徐州集团网站建设报价
  • 句容网站设计公司做网站充值犯法吗
  • 网站建设所用系统网站备案目的
  • 苏州做网站优化公司哪家好网站的大小
  • 四川省住房和城乡建设厅官方网站网站建设图标图片
  • 做影视网站侵权吗评论凡科网站建设怎么样
  • 建设个人网站流程建设游戏网站需要哪些设备
  • 四字母net做网站怎么样河南做网站优化
  • 怎样做网站快照网站当前位置怎么做
  • 网站模板移植现在c 做网站用什么框架
  • 国内专业的室内设计网站盐城网站开发代理商
  • 外贸网站建设 评价wordpress 函数调用
  • 广告支持模式的网站二级域名做网站域名
  • 空间 两个网站购物网站建设图标大全