文件和base64之间相互转换:
1、文件 ----> 字节数组(org.apache.commons下的commons-io包)
byte[] byteArray = FileUtils.readFileToByteArray(file);
所需要的maven依赖:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.15.0</version>
</dependency>
2、字节数组 ----> base64
(1)jdk自带的Base64.java类,但是jdk版本需要>=1.8
String base64Str = Base64.getEncoder().encodeToString(byteArray);
(2)jdk自带的DatatypeConverter.java类,但是jdk版本需要>=1.6
String base64Str =DatatypeConverter.printBase64Binary(byteArray);
(3)使用org.apache.commons下的commons-codec包
String base64Str = Base64.encodeBase64String(byteArray);
所需要的maven依赖:
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.16.0</version>
</dependency>
效率比较:方式一 > 方式二 > 方式三
3、base64 ----> 字节数组
(1)jdk自带的Base64.java类,但是jdk版本需要>=1.8
byte[] byteArray = Base64.getDecoder().deocde(base64Str);
(2)jdk自带的DatatypeConverter.java类,但是jdk版本需要>=1.6
byte[] byteArray = DatatypeConverter.parseBase64Binary(base64Str);
(3)使用org.apache.commons下的commons-codec包
byte[] byteArray = Base64.decodeBase64(base64Str);
效率比较:方式一 > 方式二 > 方式三
4、字节数组 ----> 文件(org.apache.commons下的commons-io包)
FileUtils.writeByteArrayToFile(file, decodeBase64);