Java压缩解压缩文件的方法有,第一中借助javajdk自带的ZipOutputStream和ZipInputStream。第二种,借助第三方jar,例如ApacheCommonsCompress和Ant。
前提,需要将Ant的ant、jar和ant-launcher、jar添加到classpath中。先创建一个Expander类,该类继承了Ant的org、apache、tools、ant、taskdefs、Expand类。
第二步:使用Expander类。
下面的示例代码演示如何创建zip压缩包。首先需要由需要压缩的文件创建一个InputStream对象,然后读取文件内容写入到ZipOutputStream中。
ZipOutputStream类接受FileOutputStream作为参数。创建号ZipOutputStream对象后需要创建一个zip entry,然后写入。
import java.io.FileInputStream
import java.io.FileOutputStream
import java.io.IOException
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
/**
*
* @author outofmemory.cn
*/
public class Main {
/**
* Creates a zip file
*/
public void createZipFile() {
try {
String inputFileName = "test.txt"
String zipFileName = "compressed.zip"
//Create input and output streams
FileInputStream inStream = new FileInputStream(inputFileName)
ZipOutputStream outStream = new ZipOutputStream(new FileOutputStream(zipFileName))
// Add a zip entry to the output stream
outStream.putNextEntry(new ZipEntry(inputFileName))
byte[] buffer = new byte[1024]
int bytesRead
//Each chunk of data read from the input stream
//is written to the output stream
while ((bytesRead = inStream.read(buffer)) >0) {
outStream.write(buffer, 0, bytesRead)
}
//Close zip entry and file streams
outStream.closeEntry()
outStream.close()
inStream.close()
} catch (IOException ex) {
ex.printStackTrace()
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main().createZipFile()
}