您的位置:首页 > 移动开发 > Android开发

android 从网上下载文件

2012-09-20 11:04 176 查看
android中如何从网上下载文件源码

String FileName=null;

public void downFile(String url, String path, String fileName) throws IOException {
if (fileName == null || fileName == "")
this.FileName = url.substring(url.lastIndexOf("/") + 1);
else
this.FileName = fileName; // 取得文件名,如果输入新文件名,则使用新文件名

URL Url = new URL(url);
URLConnection conn = Url.openConnection();
conn.connect();
InputStream is = conn.getInputStream(); //得到网络相应的内容

this.fileSize = conn.getContentLength();// 根据响应获取文件大小

if (this.fileSize <= 0) { // 获取内容长度为0
throw new RuntimeException("无法获知文件大小 ");
}

if (is == null) { // 没有下载流
throw new RuntimeException("无法获取文件");
}
//String finema = Environment.getExternalStorageDirectory()+"/ww.jpg";
//Log.e("path",finema);
FileOutputStream FOS = new FileOutputStream(fileName); // 创建写入文件内存流,通过此流向目标写文件
byte buf[] = new byte[1024]; //开辟缓存,保存文件
int numread;
while ((numread = is.read(buf)) != -1) {
FOS.write(buf, 0, numread); //将文件逐 byte写入
}

try {
is.close();
} catch (Exception e) {
}
}

补充说明:1、path处,我最早是直接用的"/sdcard/",但是一直报错java.io.FileNotFoundException:....Read-Only File System,不知为什么。后改为path=Environment.getExternalStorageDirectory()+"/ww.jpg";成功 。

2、联网要在Mainfest中加权限:<uses-permission android:name="android.permission.INTERNET"></uses-permission>

对SDCARD的操作:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: