java归档_使用Java归档文件

本文介绍了Java中处理归档文件,特别是JAR文件的基础知识,探讨了数据压缩的原理,包括无损和有损压缩的区别,并提供了使用Deflater和Inflater进行压缩和解压缩的示例代码。此外,还展示了如何使用Java处理ZIP格式的归档文件,包括创建和读取ZIP文件的内容。
摘要由CSDN通过智能技术生成

使用Java归档文件

作者:admin

分类:PHP, JAVA, .NET技术

时间:2016-05-12 10:15:53

点击量:1996

存档放在一个作为一个单元的一个或多个文件的集合。通常,在Java程序中,我们会遇到称为JAR(Java归档)的归档文件。这种类型的文件对于每一个Java程序员都不陌生。归档文件通常通过使用文件归档软件如WinZip,7-zip,tar等创建。这些类型的文件特别可用于多个文件存储和作为单个单元的传输。文件归档有时会采用数据压缩和加密的方式。本文通过使用Java编程深入研究了一些与归档文件工作相关的关键概念。

数据压缩的概述

档案文件可以采用不同的数据编码技术来减少一个文件的内容所占字节数。 有多种压缩算法来减小文件大小;通常它们有两种类型: 无损和有损压缩。 无损压缩算法的工作不会产生任何数据损失,当数据文件的大小被减少时。 另一方面,有损压缩是假定丢失一些信息是可接受的。 例如,当压缩一个图像文件时,一些颜色的损失不会造成太大的视觉差异,但可显著降低文件大小。 这对于诸如图像,视频,等等类型的文件是可接受的。 但是,这样的有损压缩并不对于包含产品信息的文件是可接受的。此时,我们需要应用无损数据压缩技术,因为当被解压缩时,我们需要的是不丢失任何数据的精确信息。

例如,对于一个无损数据压缩,一个字符串,如‘AAAAAABBBB’可被存储为'6A4B';换言之,“六A和4 B的'。 保存“6A4B”的空间比存储字符重复序列的空间少得多。 这个简单的技术被称为运行长度算法(RLE)。 RLE可通过被称为统计冗余的方法,其通过计数器代替重复序列的字符进而减小文件大小。 当前有损和无损数据压缩的算法有很多种。 例如, Lempel-Ziv (LZ)算法的变量 - LZR(Lempel-Ziv-Renau)算法,其形成了一个基础的ZIP文件,LZW(Lempel-Ziv-Welch)在GIF图像内使用。

编码技术,如MP3,Vorbis和AAC都是有损的,而JPEG 2000, FLIF,等等都是无损的。 它们对于图像或音频/视频压缩是非常有用的,其丢失几个比特位并不会影响整个内容,但肯定会降低一些品质,如果你比较挑剔微小的细节。试着听一个MP3音频和相同的文件,以未压缩音频格式,如WAV,AIFF,AU,或PCM格式。

https://en.wikipedia.org/wiki/Data_compression

https://en.wikipedia.org/wiki/Lossless_compression

https://en.wikipedia.org/wiki/Audio_file_format

这个过程被反转以获得实际的数据内容时,被称为解压缩。

1a755f1acc9a42e0c43669802cf667a2.png

图形1. 归档如何运行

在Java中压缩数据

Java提供了两个API类,被称为Deflater和Inflater,在java.util.zip包内进行压缩和解压数据。这两个类提供了Java的核心压缩及解压缩工具。执行这些类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值