压缩单个文件代码如下:
package 二进制文件读写;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.*;
/*
* 按单个文件的压缩
*/
public class App {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
File file=new File("D:/text/temp.txt");//定义要压缩的文件
File zipFile=new File("D:/text/temp.zip");//定义压缩文件名称
InputStream input=new FileInputStream(file);
ZipOutputStream zipOut=null;//声明压缩对象
zipOut=new ZipOutputStream(new FileOutputStream(zipFile));
zipOut.putNextEntry(new ZipEntry(file.getName()));
zipOut.setComment("zip hello");
int temp=0;
while((temp=input.read())!=-1)
{
zipOut.write(temp);
}
input.close();
zipOut.close();
System.out.print("ok");
}
}
}
压缩一个文件夹的代码:
package 文件夹压缩;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class App {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File file=new File("D:/text");
File zipFile=new File("D:/mult2.zip");
InputStream input=null;
ZipOutputStream zipOut=null;//声明压缩流对象
zipOut=new ZipOutputStream(new FileOutputStream(zipFile));
zipOut.setComment("hello zip");
//开始压缩
int temp=0;
if(file.isDirectory())
{
File lists[]=file.listFiles();//返回全部文件夹
for(int i=0;i<lists.length;i++)
{
input=new FileInputStream(lists[i]);
//设置Ectry文件
zipOut.putNextEntry(new ZipEntry(file.getName()+File.separator+lists[i].getName()));
while((temp=input.read())!=-1)
{
zipOut.write(temp);
}
input.close();
}
}
zipOut.close();
}
}
解压单个文件
package 文件夹解压;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class App {
public static void main(String[] args) throws IOException {
File zipFile=new File("D:/text/temp.zip");
ZipInputStream input=new ZipInputStream(new FileInputStream(zipFile));
ZipEntry zip= input.getNextEntry();
System.out.println(zip.getName());
File outfile=new File("D:/"+zip.getName());
OutputStream out=new FileOutputStream(outfile);
int temp=0;
while((temp=input.read())!=-1)
{
out.write(temp);
}
input.close();
out.close();
}
}
解压多个文件
package 解压多个文件;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
public class App {
public static void main(String[] args) throws ZipException, IOException {
// TODO Auto-generated method stub
File file=new File("D:/text/temp.zip");
File outFile=null;
ZipFile zipfile=new ZipFile(file);
ZipInputStream zipInput=null;
OutputStream out=null;
InputStream input=null;
ZipEntry entry=null;
zipInput=new ZipInputStream(new FileInputStream(file));
while((entry=zipInput.getNextEntry())!=null)
{
outFile=new File("D:/"+entry.getName());
if(!outFile.getParentFile().exists())
{
outFile.getParentFile().mkdirs();
}
if(!outFile.exists())
{
if(entry.isDirectory())
{
outFile.mkdir();
}
else
{
outFile.createNewFile();
}
}
if(!entry.isDirectory())
{
input=zipfile.getInputStream(entry);//得到每一个实体的输入流
out=new FileOutputStream(outFile);
int temp=0;
while((temp=input.read())!=-1)
{
out.write(temp);
}
input.close();
out.close();
}
}
input.close();
}
}