黑马程序员技术交流社区
标题:
创建ZipFile出错
[打印本页]
作者:
孙小亚
时间:
2014-8-25 11:38
标题:
创建ZipFile出错
我想创建一个ZipFile,总是出现这个错误:
下面是代码:
import java.util.zip.ZipFile;
public class Demo2 {
public static void main(String[] args) throws Exception{
String zipFileName = "E:\\BaiduYunDownload\\银行业务调度\\01 张孝祥-7K月薪面试题破解之二_银行业务调度系统视频教程_3G之android面试经验漫谈.zip";
ZipFile zf = new ZipFile(zipFileName);
zf.close();
System.out.println("SUCCESS");
}
}
[color=rgb(177, 8, 0) !important]
复制代码
作者:
masai158
时间:
2014-8-25 11:38
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/**使用Java原生态 解压方式,解压 zip 和 rar 文件。
* 压缩文件夹里面保存着 2个文本文件, 提取出他们的文件信息并打印出来。
*
* 我实现的原理是:
* ①首先使用 ZipInputStream 读取一个 zip文件。
* ②遍历出他里面的文件信息(他的名字)
* ③拿到他的名字以后。使用 ZipInputStream 读取 他的信息,并使用 OutputStream 将里面的文件 提取出来。
* ④然后在通过 拿到的 文件 名字。通过一个方法传入名字,将他打印出来(用读取流读取,和输出流打印在屏幕)
*
* */
public class Demo
{
public static void main(String[] args) throws Exception
{
ZipInputStream zipIs = new ZipInputStream(new BufferedInputStream(new FileInputStream("a.zip"))); //获取zip的流对象。
ZipEntry zipEntry;
while((zipEntry=zipIs.getNextEntry()) != null) //进行遍历里面的条目。
{
String fileName = zipEntry.getName(); //返回一个文件名称
// System.out.println(zipEntry.clone());
int flag ;
byte[] data = new byte[1024];
BufferedOutputStream bufw = new BufferedOutputStream(new FileOutputStream(fileName)); //在使用一个字节输出流将压缩文件输出
while( (flag = zipIs.read(data))!=-1)
{
bufw.write(data, 0, flag);
bufw.flush();
}
println(new File(fileName)); //通过一个方法。传入名字 将他读取出来。并打印在控制台上面
}
zipIs.close();
}
/**既然是文本文件,就使用 Reader,和 Writer 即可
* */
public static void println(File path) throws Exception
{
BufferedReader bufr = new BufferedReader(new FileReader(path));
PrintWriter pr = new PrintWriter(new OutputStreamWriter(System.out),true);
System.out.print(path.getName() + ",文件中的类容是:");
String flag;
while((flag=bufr.readLine())!=null)
{
pr.println(flag);
}
bufr.close();
}
}
复制代码
我只是复制了我的方法。
作者:
孙小亚
时间:
2014-8-25 11:39
import java.util.zip.ZipFile;
public class Demo2 {
public static void main(String[] args) throws Exception{
String zipFileName = "E:\\BaiduYunDownload\\银行业务调度\\01 张孝祥-7K月薪面试题破解之二_银行业务调度系统视频教程_3G之android面试经验漫谈.zip";
ZipFile zf = new ZipFile(zipFileName);
zf.close();
System.out.println("SUCCESS");
}
}
复制代码
作者:
glbai
时间:
2014-8-25 16:39
孙小亚 发表于 2014-8-25 11:39
你确定有错吗 还是你那个文件不存在啊 或者格式不对之类啊 我这没问题啊
作者:
❤如止水之絕境
时间:
2014-8-26 10:42
我觉得你那个路径中有中文的原因,有中文后需转码??我的Java知识差不多忘了。。。
作者:
❤如止水之絕境
时间:
2014-8-26 10:44
或者是那个路径貌似只有E:\\这里才是双斜线,其余都为单斜线吧
作者:
孙小亚
时间:
2014-8-26 16:24
❤如止水之絕境 发表于 2014-8-26 10:44
或者是那个路径貌似只有E:\\这里才是双斜线,其余都为单斜线吧
不是的吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2