前言
客户端在通信时把一些文件转换成base64格式发送,在使用base64通信时需要注意Base64算法加密,当字符串过长(一般超过76)时会自动在中间加一个换行符,字符串最后也会加一个换行符。导致和其他模块对接时结果不一致。往往会造成服务器总是解析出错。
方法
这里需要注意的是Base64.DEFAULT和Base64.NO_WRAP
Base64.DEFAULT:会默认换行,生成换行符,导致服务器解析出错。
Base64.NO_WRAP:不会默认换行,所以在此我们使用的是该方法。
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.NO_WRAP);
}