public static String download(Context context,String docUrl)throws Exception{ /***加载正文***/ //获取存储卡路径、构成保存文件的目标路径 String dirName = ""; //SD卡具有读写权限、指定附件存储路径为SD卡上指定的文件夹 dirName = Environment.getExternalStorageDirectory()+"/Signature/"; File f = new File(dirName); if(!f.exists()){ //判断文件夹是否存在 f.mkdir(); //如果不存在、则创建一个新的文件夹 } //准备拼接新的文件名 String[] list = docUrl.split("/"); String fileName = list[list.length-1]; fileName = dirName + fileName; File file = new File(fileName); if(file.exists()){ //如果目标文件已经存在 file.delete(); //则删除旧文件 } //1K的数据缓冲 byte[] bs = new byte[1024]; //读取到的数据长度 int len; try{ //通过文件地址构建url对象 URL url = new URL(docUrl); //获取链接 //URLConnection conn = url.openConnection(); //创建输入流 InputStream is = url.openStream(); //获取文件的长度 //int contextLength = conn.getContentLength(); //输出的文件流 OutputStream os = new FileOutputStream(file); //开始读取 while((len = is.read(bs)) != -1){ os.write(bs,0,len); } //完毕关闭所有连接 os.close(); is.close(); }catch(MalformedURLException e){ fileName = null; System.out.println("创建URL对象失败"); throw e; }catch(FileNotFoundException e){ fileName = null; System.out.println("无法加载文件"); throw e; }catch(IOException e){ fileName = null; System.out.println("获取连接失败"); throw e; } return fileName; }