file文件与base64字符串的相互转换
直接上代码
/** * 文件转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) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { if (in != null) { in.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return base64; } /** * base64字符串转文件 * @param base64 * @return */ public static File base64ToFile(String base64) { File file = null; String fileName = "/Petssions/record/testFile.amr"; FileOutputStream out = null; try { // 解码,然后将字节转换为文件 file = new File(Environment.getExternalStorageDirectory(), fileName); if (!file.exists()) file.createNewFile(); 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; }