qqjianyue代码工

砌java代码
posts - 62, comments - 9, trackbacks - 0, articles - 10
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

java 压缩IO类

Posted on 2008-10-07 14:15 Qzi 阅读(1712) 评论(0)  编辑  收藏 所属分类: java foundation
ZIP压缩IO涉及类(包括操作文件夹压缩)

ZipEntry标识zip文件中单个文件的入口,它也支持路径加文件名,所以通过配置它,可以建立目录层次的zip文件(见下例子)

ZipOutputStreamwrite数据到zip文件的对象

ZipInputStream,从zip文件中read数据的对象,其实基本上这个没有作用

ZipFile,获取zip文件里面单个文件入口,getInputStream()等信息的对象,初始化ZipFile zf = new ZipFile(zip压缩文件的File对象);

           Enumeration entries = =zf.entries()可以获得所有的zip文件里面的文件入口。

原理就是:entry指定单个文件相对zip压缩文件内部根目录的位置,Stream操作输出输入,ZipFile代表的就是整个zip文件


示例代码

JAR压缩类与ZIP是几乎一模一样对应的分别为:JarEntry JarFile JarInputStream JarOutputStream

GZIP格式,只提供GZIPInputStream和GZIPOutputStream类,因为其作用是单纯的压缩与解压,不维护文件结构。多数用于基于流的数据传送过程实现数据压缩。用法就如Bufer Stream一样,是stream之间的又一个过滤类,只是Buffer提供缓冲,而GZIP提供压缩。
例如需要网络传送压缩就可以这样做:
客户端:
Socket socket = new Socket(服务器地址字符串, 服务器端口);
BufferOutputStream out = new BufferOutPutStream(new GZIPOutputStream(socket.getOutputStream()));
然后就可以操作数据输出了
服务器端:
ServerSocket sSocket =   new ServerSocket(服务器端口);
Socket socket = sSocket.accept();
BufferInputStream in = new BufferInputStream(new GZIPInputStream(socket.getInputStream()));
然后就可以读入数据了。
明显网络数据传送就加了一个压缩,性能就可以提高了。

只有注册用户登录后才能发表评论。


网站导航: