欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

帮忙看下这段代码有什么有关问题啊

更新时间: 2014-01-05 02:35:56 责任编辑: Author_N1

 

帮忙看下这段代码有什么问题啊。
public void downloadFile(String URL, String fileName)
throws Exception {
InputStream is = null;
try {
// 创建、打开连接
URL myUrl = new URL(URL);
URLConnection connection = myUrl.openConnection();
connection.connect();

// 得到访问内容并保存在输入流中。
is = connection.getInputStream();
// 得到文件的总长度。注意这里有可能因得不到文件大小而抛出异常
int len = connection.getContentLength();

Log.e("down", String.valueOf(len));
Log.e("fileName", fileName);
if (is != null) {
File file = new File(SD_PATH + fileName);
// 如果文件存在,则删除该文件。
if (file.exists()) {
file.delete();
Log.e("down", "已删除文件");
}
RandomAccessFile randomAccessFile = new RandomAccessFile(
SD_PATH + fileName, "rw");
byte[] buffer = new byte[4096];
int length = -1;
while ((length = is.read(buffer)) != -1) {
randomAccessFile.write(buffer, 0, length);
nowSize+=length;
Log.e("down", "正在下载。。。。" + (nowSize));
}

is.close();
randomAccessFile.close();

}
} catch (Exception e) {

Log.e("down", e.toString());
} finally {

}

Debug调试了一下,到RandomAccessFile randomAccessFile = new RandomAccessFile(SD_PATH + fileName, "rw");的时候,跳到catch了,到底是什么问题啊。。
Logcat错误信息是,catch中打印了java.io.FileNotFoundException: /sdcard/DBMarket/TogicVideo_V2_5_release_togic_ZNDS.apk: open failed: ENOENT (No such file or directory)

--参考方法--
/sdcard/DBMarket/  这个路径存在吗?使用Java IO写文件时会自动创建文件,但是如果路径都不存在的话就会报异常的,需要自己手动创建这个路径。即:

 File p = new File(filePath);
        if (!p.exists()) {
            p.mkdirs();
        }


另外,创建路径的时候后面最好不要加 /  ,然后创建IO流的时候使用 filePath + File.separator + fileName
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:35:56
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11950/
本文WWW.DOC100.NET DOC100.NET版权所有。