音频和base64的转化实现

1.1.语音文件路径转化为BASE64格式的String 源码 (jdk版本-1.8)

 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 new BASE64Encoder().encode(buffer);
    }

1.2.将base64字符解码保存文件

/**
     * 将base64字符解码保存文件
     * @param base64Code
     * @param targetPath
     * @throws Exception
     */
    public static void decoderBase64File(String base64Code, String targetPath)
            throws Exception {
        byte[] buffer = new BASE64Decoder().decodeBuffer(base64Code);
        FileOutputStream out = new FileOutputStream(targetPath+"/1.wav");
        out.write(buffer);
        out.close();
    }

 JAVA 运行环境不是1.8时 ,所报错:

java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder

 原因:sun/misc/BASE64Encoder,只有在jdk1.8之前的版本存在,jdk9以后的版本,就不存在了。如果出现这样的错误,检查自己当前的jdk版本。

 解决方案:

建议:使用 import org.apache.commons.codec.binary.Base64对原先sun/misc/BASE64Decoder进行替换。

2.实现方案

2.1.添加 import org.apache.commons.codec.binary.Base64包

 

        <dependency>
	    <groupId>commons-codec</groupId>
	    <artifactId>commons-codec</artifactId>
            <version>1.6</version>
	</dependency>

 

2.2.替换原来的BASE64Encoder()

 加密部分

#加密
BASE64Encoder base64encoder = new BASE64Encoder(); return base64encoder.encode(xxx);
##替换
Base64.encodeBase64String(xxx);

 

解密部分

解密
new BASE64Decoder().decodeBuffer(xxx)

替换成
Base64.decodeBase64(xxx);

注意包的引入选择:

import org.apache.commons.codec.binary.Base64;

posted @ 2022-11-01 16:57  繁华纤尽依然保持初心  阅读(2284)  评论(0)    收藏  举报