android 从网上下载文件

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>           

转载于:https://www.cnblogs.com/wyqfighting/archive/2012/09/20/2694890.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值