//根据指定的二进制流字符串保存文件并返回保存路径 public static String saveFileByBinary(String str,String attName,Context context){ /***加载附件***/ //获取存储卡路径、构成保存文件的目标路径 String dirName = ""; //SD卡具有读写权限、指定附件存储路径为SD卡上指定的文件夹 dirName = Environment.getExternalStorageDirectory()+"/MyDownload/"; File f = new File(dirName); if(!f.exists()){ //判断文件夹是否存在 f.mkdir(); //如果不存在、则创建一个新的文件夹 } //准备拼接新的文件名 String fileName = ""; fileName = attName; fileName = dirName + fileName; File file = new File(fileName); if(file.exists()){ //如果目标文件已经存在 file.delete(); //则删除旧文件 } byte[] byteFile = Base64.decode(str, 0); try { InputStream is = new ByteArrayInputStream(byteFile); FileOutputStream os = new FileOutputStream(file); byte[] b = new byte[1024]; int len = 0; //开始读取 while ((len = is.read(b)) != -1) { os.write(b, 0, len); } //完毕关闭所有连接 is.close(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } return fileName; }