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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么读取Zip和RAR里面的文件啊?相关的知识,希望对你有一定的参考价值。

zip和RAR的解压包里面的文件,怎么能用java流读取出来,比如说RAR或zip里面有两张图片,怎么才能把他们读出来啊。
不过我在java.util.zip这个包里面看见有,ZipFile,ZipOutputStream,ZipBundleEntry,
ZipEntry,ZipException,ZipInputStream,这几个类,但不知道这么用他们。
知道的朋友帮帮小弟,谢谢了。

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();

参考技术A 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();

参考技术B 需要解压了才可以 参考技术C 到底怎么读我也不知道,不过是可以的你可以参考下这个http://www.chinaunix.net/jh/26/106061.html

如何将指定文件夹下的内容打包成JAR格式

下载的一个格式为*.rar的文件,里边只有文件夹没有jar格式的文件,是游戏的,肯定是可以安装的,我手机只能读取jar格式的文件,该如和转换啊?要详细易懂一点的,回答详细的还可以加分的,要原创的拒绝复制。

参考技术A 这个我知道,首先把.rar的压缩包解压,打开解压出的文件夹,必须保证里面有classic之类的文件(确保是手机java程序),然后把这个文件夹下的全部内容打包(注意,只有这个文件夹下的全部内容,不要包含这个文件夹本身)成zip压缩包(一定是zip),然后把这个压缩包的扩展名改成jar,就可以了(zip和jar是同一种格式,只要重命名就可以了),这样你的手机就可以读取了

以上是关于java怎么读取Zip和RAR里面的文件啊?的主要内容,如果未能解决你的问题,请参考以下文章

Java能否对压缩文件进行操作,例如:对zip,rar,tar等文件进行复制。

jar解压后 如何把解压出来的文件夹 重新编译成jar ???

如何将指定文件夹下的内容打包成JAR格式

我上网下载东西时下下来的东西不是可以打开的rar文件是怎么回事啊?还有啥403错误是怎么回事

解压是怎么一回事啊,怎样正确解压,手机解压

怎么将zip格式转为package格式