新建FileOutputStream 抛出IOException异常

try{Fileolddirec=newFile(unzipfile);ZipInputStreamzin=newZipInputStream(newFileInputS... try {
File olddirec = new File(unzipfile);
ZipInputStream zin = new ZipInputStream(new FileInputStream(unzipfile));
ZipEntry entry;
while ( (entry = zin.getNextEntry()) != null){
if (entry.isDirectory()) {
File directory = new File(olddirec.getParent(), entry.getName());
if (!directory.exists())
if (!directory.mkdirs())
System.exit(0);
zin.closeEntry();
}
if (!entry.isDirectory()) {
File myFile = new File(entry.getName());
String ofile=file.replace(".zip", "");
File fo=new File(ofile);
if(!fo.exists()){
fo.mkdir();
}

File directory2 = new File(ofile+"/");
File file2 = new File(ofile+"/"+myFile.getPath());
FileOutputStream fout = new FileOutputStream(file2);
DataOutputStream dout = new DataOutputStream(fout);
byte[] b = new byte[1024];
int len = 0;
while ( (len = zin.read(b)) != -1) {
dout.write(b, 0, len);
}
dout.close();
fout.close();
zin.closeEntry();
staus=true;
}
}
}
catch (IOException e) {
e.printStackTrace();
}

说明:
每次执行到FileOutputStream fout = new FileOutputStream(file2);
时就抛出IOException异常,求指教。
其中e.dtailMessage显示open failed: ENOENT (No such file or directory),
于是添加了代码
if(!directory2.exists())
directory2.mkdir();//没有目录先创建目录
if(!file2.exists())
file2.createNewFile();
此时在file2.createNewFile();
时抛出异常,并且仍然提示为open failed: ENOENT (No such file or directory)。
展开
 我来答
百度网友845f74e61
2012-03-28 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1633万
展开全部
FileOutputStream fout = new FileOutputStream(file2);
出错,应该是指定的路径找不到

比如你只有 D:\zip目录
你想解压出的目录是 D:\zip\a\b\c\test.txt这样
那中间的a\b\c目是不存在的。

创建出来就可以了

if(!file2.getParentFile().exists()){
file2.getParentFile().mkdirs();
}
这样,判断如果目录不存在创建 出来,再输出文件。
--------------------------------------------------------------------------------
打开失败,你的file2是什么,打出来看一下
更多追问追答
追问
我刚调试看了下,在新建目录directory2.mkdir();的时候就返回的是false。
目录是"mnt/sdcard/ddtest/"。
追答
mkdir();只能建一层目录。
如果你是想建多用
mkdirs();
小伙知道3
2012-03-28
知道答主
回答量:11
采纳率:0%
帮助的人:1.8万
展开全部
看看!!!路过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式