zipentry java中的ZipEntry是什么意思
大家好,今天我将为大家揭秘zipentry和java中的ZipEntry是什么意思的奥秘,希望我的分享能给你带来新的启发和知识。
JDK ZipEntry压缩中文文件名乱码解决
项目中碰到问题.jdk zipEntry压缩中文文件名乱码
上网查了下,有两种方法,一种修改jdk ZipInputStream及ZipOutputStream的源文件,比较麻烦,不建议此项.
第二种就是拿来主义,因为开源项目 Ant里已经有现成的实现.把ant.jar加入到工程下的lib目录即可.
如果仅用到压缩,就加入ant.jar就导致引入了一些不必要的文件,所以我找到Ant1.8的源码,然后只把需要的那一部分编译打包成了一个jar文件,供大家使用
首先引入
Java代码
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
关键示例代码如下:
Java代码
zos= new ZipOutputStream(new FileOutputStream(zipname));
FileInputStream fis= new FileInputStream(file);
ZipEntry ze= new ZipEntry(file.getName());
ze.setSize(file.length());
ze.setTime(file.lastModified());
zos.putNextEntry(ze); zos.setEncoding("gbk");
java中的ZipEntry是什么意思
ZipEntry类是java.util.zip包下的一个类,
ZipEntry类用于表示 ZIP文件条目。
利用这个类压缩和解压zip文件
具体压缩的例子如下:
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipOutputStream;
/**
*压缩程序
*@authoryoung
*
*/
publicclassSingleFileZip{
publicstaticvoidmain(String[]args){
Filefile=newFile("e:/test.txt");
FileInputStreamfis=null;
ZipOutputStreamzos=null;
try{
fis=newFileInputStream(file);
zos=newZipOutputStream(newFileOutputStream("e:/my.zip"));
//创建压缩文件中的条目
ZipEntryentry=newZipEntry(file.getName());
//将创建好的条目加入到压缩文件中
zos.putNextEntry(entry);
//写入当前条目所对应的具体内容
byte[]buff=newbyte[1024];
intlen=0;
while((len=fis.read(buff))!=-1){
zos.write(buff,0,len);
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
fis.close();
zos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
解压例子如下:
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.zip.ZipEntry;
importjava.util.zip.ZipFile;
importjava.util.zip.ZipInputStream;
/**
*解压程序
*@authoryoung
*
*/
publicclassSingleFileUnZip{
publicstaticvoidmain(String[]args){
FileOutputStreamfos=null;
ZipInputStreamzis=null;
InputStreamis=null;
try{
ZipFilezf=newZipFile("e:/my.zip");
zis=newZipInputStream(newFileInputStream("e:/my.zip"));
fos=newFileOutputStream("e:/unzip.txt");
//从压缩文件中获取一个条目
ZipEntryentry=zis.getNextEntry();
//获得该条目对象的数据流
is=zf.getInputStream(entry);
byte[]buff=newbyte[1024];
intlen=0;
while((len=is.read(buff))!=-1){
fos.write(buff,0,len);
}
}catch(FileNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
is.close();
zis.close();
fos.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
文章分享到这里,希望我们关于zipentry和java中的ZipEntry是什么意思的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。