在项目中需要用到文件传输入,为了传输方便最好的办法是将文件转成base64字串,再将base64字串转成字节流保存在文件了。
不过这种做法的虽然简单,但还是要根据实际需要进行选择;弊端是不能转太大的文件,文件太大会造成效率上的问题。具体多大,笔者没有做深入研究和实际测试。如有兴趣,可以自己深入研究测试。
需要导入 import android.util.Base64;
/**
* encodeBase64File:(将文件转成base64 字符串). <br/>
* @author guhaizhou@126.com
* @param path 文件路径
* @return
* @throws Exception
* @since JDK 1.6
*/
public static String encodeBase64File(String path) throws Exception {
File file = new File(path);
FileInputStream inputFile = new FileInputStream(file);
byte[] buffer = new byte[(int)file.length()];
inputFile.read(buffer);
inputFile.close();
return Base64.encodeToString(buffer,Base64.DEFAULT);
}
/**
* decoderBase64File:(将base64字符解码保存文件). <br/>
* @author guhaizhou@126.com
* @param base64Code 编码后的字串
* @param savePath 文件保存路径
* @throws Exception
* @since JDK 1.6
*/
public static void decoderBase64File(String base64Code,String savePath) throws Exception {
//byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
byte[] buffer =Base64.decode(base64Code, Base64.DEFAULT);
FileOutputStream out = new FileOutputStream(savePath);
out.write(buffer);
out.close();
}
评论