java怎么读取Zip和RAR里面的文件啊?

作者&投稿:羿红 (若有异议请与网页底部的电邮联系)
如何用java读取zip文件名和zip内文件的文件名,在线等~

public static void te(File f) throws IOException {
if (!f.exists() || !f.isDirectory()) {
return;
}
File[] subFiles = f.listFiles();
ZipFile zipFile = null;
for (int i = 0, ii = subFiles == null ? 0 : subFiles.length; i < ii; i++) {
if (subFiles[i].isFile()) {
try {
zipFile = new ZipFile(subFiles[i]);
Enumeration entries = zipFile.entries();
System.out.println("压缩文件:" + subFiles[i].getAbsolutePath());
while(entries.hasMoreElements())
{
System.out.println(" entry:" + ((ZipEntry)entries.nextElement()).getName());
}
zipFile.close();
} catch (ZipException e) {
//System.out.println(e.getMessage());
}
}
}
}

思路是这样的:1、将压缩文件解压缩到临时目录2、读取临时目录中的文件或者文件夹(如果是文件夹则读取文件夹中的文件以此类推)3、将读取的内容显示4、删除临时文件夹中的文件或者文件夹这些都没有难点gkos你觉得对你来说难度在哪里呢

ZipInputStream是一个指向ZIP文件的流,这个流最重要的方法就是getNextEntry方法,一个zip文件可以包含好几个被压缩的文件,这个方法的功能就是返回下一个目录项,也就是返回zip文件中的下一项,并且把流指向这个目录文件项。getNextEntry的返回值是ZipEntry,它表示zip文件中的一个项,它可以返回这个文件项的大小、名称等。你可以根据它返回的文件大小调用ZipInputStream的read方法来读取需要的字节。给你一个例子:public class ZipTest {
public static void main(String args[]) throws FileNotFoundException, IOException{
ZipInputStream zis = new ZipInputStream(new FileInputStream ("c://a.zip"));//生成读取ZIP文件的流
ZipEntry ze = zis.getNextEntry();//取得下一个文件项
long size = ze.getSize();//取得这一项的大小
FileOutputStream fos = new FileOutputStream("c://"+ze.getName());//产生输出文件对象
for(int i= 0;i<size;i++){//循环读取文件并写入输出文件对象
byte c = (byte)zis.read();
fos.write(c);
}
fos.close();
zis.close();
}
}

package test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;

public class aaaa {

public static void main(String[] args) throws Exception {
try {
readZipFile("D:\\ztree.zip");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void readZipFile(String file) throws Exception {
ZipFile zf = new ZipFile(file);
InputStream in = new BufferedInputStream(new FileInputStream(file));
ZipInputStream zin = new ZipInputStream(in);
ZipEntry ze;
while ((ze = zin.getNextEntry()) != null) {
if (ze.isDirectory()) {
} else {
System.err.println("file - " + ze.getName() + " : "
+ ze.getSize() + " bytes");
long size = ze.getSize();
if (size > 0) {
BufferedReader br = new BufferedReader(
new InputStreamReader(zf.getInputStream(ze)));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}
System.out.println();
}
}
zin.closeEntry();
}
}

需要解压了才可以

到底怎么读我也不知道,不过是可以的你可以参考下这个http://www.chinaunix.net/jh/26/106061.html


哪儿有《钢炼》中“兄弟”的歌词?
MoI BuRa, Ya Vo ViJoMu ViNaVaTo Moy Bala, Yadac Vsjom Villahart Не плачь, не печалься, старший брат!Ni PuRa-Chi, Ni PeChaRuSya, SuTa-RuShii BuRa-To!Ni Pulaci, Ni pechalsha, Schastachi Buart Не ты один виноват.Ni...

求 钢炼的歌的歌词
不知如何处置犹豫不决的心 身旁的鸟儿颤动翅膀,或许已找到光芒 喂!能让我骑在你的背上吗?然后把我搁置在最高处,远离那份温柔 用你的手切断遥远日子的记忆 使我终止悲哀的生命 喂!穿过被爱焚烧的心 鸟儿送走了黄昏 风儿安抚趴在地上的我 不奢望能拥有双翅 但至少也希望自己能化作在宇宙中的...

俄文brothers的罗马拼音歌词
bla zi ni ya a mla chi bla Прости меня, младший брат!请原谅我吧,弟弟!ya da glui da mo i na wa Я так пред тобой виноват.我在你面前有罪 wei da za lie mu u u zi linizia Пытаться вернуть не...

钢之炼金术士里的插曲<兄弟>是什么语言啊,应该不是日语吧?
是俄语,由BEPA演唱………一楼的好强啊!!!歌词:bla zi ni ya a mla chi bla Прости меня, младший брат!请原谅我吧,弟弟!ya da glui da mo i na wa Я так пред тобой виноват.我在你面前有罪 wei da za lie mu u u zi...

<<钢之炼金术士>>的"兄弟"这首歌的罗马字和中文,日文歌词?
bla zi ni ya a mla chi bla Прости меня, младший брат!请原谅我吧,弟弟!ya da glui da mo i na wa Я так пред тобой виноват.我在你面前有罪 wei da za lie mu u u zi linizia Пытаться вернуть не...

求钢之炼金术师插曲 brothers
brother(兄弟)bla zi ni ya a mla chi bla Прости меня, младший брат!请原谅我吧,弟弟!ya da glui da mo i na wa Я так пред тобой виноват.我在你面前有罪 wei da za lie mu u u zi linizia Пытаться верн...

钢之炼金术士 兄弟 的歌词 irl
bla zi ni ya a mla chi bla Прости меня, младший брат!请原谅我吧,弟弟!ya da glui da mo i na wa Я так пред тобой виноват.我在你面前有罪 wei da za lie mu u u zi linizia Пытаться вернуть не...

塔河县17294215896: java怎么读取Zip和RAR里面的文件啊? -
雕品坤宝: ZipInputStream是一个指向ZIP文件的流,这个流最重要的方法就是getNextEntry方法,一个zip文件可以包含好几个被压缩的文件,这个方法的功能就是返回下一个目录项,也就是返回zip文件中的下一项,并且把流指向这个目录文件项. ...

塔河县17294215896: 如何用java读取zip文件名和zip内文件的文件名,在线等
雕品坤宝: 循环目录下的文件,判断附加名是zip的,然后用zipOutputstream和zipInputstream解压缩到一个临时目录读取zip内的文件名.这一步是无法跳过的,即使你在电脑上查看zip或者rar的某一个文件时也是全部解压缩地,因为所有文件压缩为一个文件后使用同一个压缩算法,只有全部解出来才能还原回来.

塔河县17294215896: java如何读取压缩包中的文本文件 -
雕品坤宝: 压缩包的里的文件不能直接读取,只能先解压缩,再读取.建议:可以用apache的工具类,先解压缩成临时文件,再读取,最后删除临时文件.

塔河县17294215896: 如何在java中实现对zip和rar文件的解压 -
雕品坤宝: java中有zip包,可以使用 public void getZipFiles(String zipFile, String destFolder) throws IOException { BufferedOutputStream dest = null; ZipInputStream zis = new ZipInputStream( new BufferedInputStream( new FileInputStream(zipFile))); ZipEntry ...

塔河县17294215896: 如何通过java,不进行解压zip/rar文件操作,就把压缩文件中的文件名给读取出来?求可行的思路!谢谢! -
雕品坤宝: public List getZipFileNames(String path) throws Exception{ List fileNames=new ArrayList(); File file=new File(path);//path是压缩文件路径 ZipFile zipFile=new ZipFile(file); for (Enumeration zipEntries = zipFile.getEntries(); zipEntries ....

塔河县17294215896: Java里面怎么导入压缩包 -
雕品坤宝: 首先解压. File->New->Java Project 不用填project,不要选择use default location, 然后browse是选择要导入的java项目; 如果只是java源文件的话,你就用Eclipse新建一个项目,然后把文件粘到项目的src文件夹下即可.

塔河县17294215896: java 读取zip里面的文件夹 -
雕品坤宝: 思路是这样的:1、将压缩文件解压缩到临时目录2、读取临时目录中的文件或者文件夹(如果是文件夹则读取文件夹中的文件以此类推)3、将读取的内容显示4、删除临时文件夹中的文件或者文件夹这些都没有难点gkos你觉得对你来说难度在哪里呢

塔河县17294215896: java中怎么解压rar文件 到指定文件目录中 -
雕品坤宝: 1.代码如下:[java] view plain copypackage cn.gov.csrc.base.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io....

塔河县17294215896: java中读取压缩包中的文件怎么不用通过解压 -
雕品坤宝: 你好,我不知道你说的dzp是什么格式文件,但如果是zip的压缩文件,可以看下我的这段代码 ZipFile file = new ZipFile("d:\\1.zip"); ZipEntry entry = file.getEntry("1.xml"); //假如压缩包里的文件名是1.xml InputStream in=file.getInputStream(entry); 最后就是按照java中一贯的流的处理方式即可

塔河县17294215896: java 如何读取本地硬盘上面的zip文件. 返回ZipInputStream流! -
雕品坤宝: 直接用FileInputStream读文件到内存,然后用OutputStream输出到客户端,因为是二进制流操作,源文件是什么格式,输出的就是什么格式.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网