zoukankan      html  css  js  c++  java
  • 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>           

  • 相关阅读:
    001 云开发基础
    HttpClient 调用外部接口(简单实用)
    MD5加密(简单实现_可自行扩展)
    SAA C02考点梳理
    支配树
    CF1320E 题解
    dp套dp
    20210705模拟赛总结
    20210703模拟赛
    20210629模拟赛总结
  • 原文地址:https://www.cnblogs.com/wyqfighting/p/2694890.html
Copyright © 2011-2022 走看看