base64ToFile和fileToBase64

来源:互联网 发布:python kmeans 编辑:程序博客网 时间:2024/06/01 09:51
/** * 文件转base64字符串 * @param file * @return */public static String fileToBase64(File file) {   String base64 = null;   InputStream in = null;   try {      in = new FileInputStream(file);      byte[] bytes = new byte[in.available()];      int length = in.read(bytes);      base64 = Base64.encodeToString(bytes, 0, length, Base64.DEFAULT);   } catch (FileNotFoundException e) {            e.printStackTrace();   } catch (IOException e) {            e.printStackTrace();   } finally {      try {         if (in != null) {            in.close();         }      } catch (IOException e) {                 e.printStackTrace();      }   }   return base64;}/** * base64字符串转文件 * @param base64 * @return */public static File base64ToFile(String base64) {   File file = null;   String fileName = "/OC/img/i.jpg";   FileOutputStream out = null;   try {      // 解码,然后将字节转换为文件      // 获取SDCard指定目录下      String sdCardDir = Environment.getExternalStorageDirectory() + "/OC/";      File dirFile = new File(sdCardDir);  //目录转化成文件夹      if (!dirFile.exists()) {              //如果不存在,那就建立这个文件夹         dirFile.mkdirs();      }                          //文件夹有啦,就可以保存图片啦      file = new File(sdCardDir,  "i.jpg");// 在SDcard的目录下创建图片文,以当前时间为其命名      byte[] bytes = Base64.decode(base64, Base64.DEFAULT);// 将字符串转换为byte数组      ByteArrayInputStream in = new ByteArrayInputStream(bytes);      byte[] buffer = new byte[1024];      out = new FileOutputStream(file);      int bytesum = 0;      int byteread = 0;      while ((byteread = in.read(buffer)) != -1) {         bytesum += byteread;         out.write(buffer, 0, byteread); // 文件写操作      }   } catch (IOException ioe) {      ioe.printStackTrace();   } finally {      try {         if (out!= null) {            out.close();         }      } catch (IOException e) {         // TODO Auto-generated catch block         e.printStackTrace();      }   }   return file;}