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

java怎么读取Zip和RAR里面的文件啊?,第1张

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= 0i<sizei++){//循环读取文件并写入输出文件对象

byte c = (byte)zis.read()

fos.write(c)

}

fos.close()

zis.close()

}

}

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.lengthi <iii++) {

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你觉得对你来说难度在哪里呢


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11646973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存