有时候我们拿到一个视频文件或者一张图片文件,经过处理之后想把文件转成字符串String返回给前端,当然这里我们不会直接把String返回给前端,我们会经过处理,比如做Base64处理返回,下面请看如何做base64处理代码:
public static void testFileBase64() throws Exception{
InputStream is;
InputStream inputStream;
String ss;
String sourceVideo = "/Users/mac/Desktop/B612/ms/mp4/k7.mp4" ;
// 方法一
inputStream = FileUtils.openInputStream(new File(sourceVideo));
// encode
ss = new String(Base64.getEncoder().encode(IOUtils.toByteArray(inputStream)),Charsets.ISO_8859_1);
// decode
is = new ByteArrayInputStream(Base64.getDecoder().decode(ss.getBytes(Charsets.ISO_8859_1)));
// 测试生成文件和原文件对比
FileUtils.copyInputStreamToFile(is,new File("/Users/mac/Desktop/B612/ms/mp4/k7-copy.mp4"));
// 方法二
byte[] bytes = FileUtils.readFileToByteArray(new File(sourceVideo));
// encode
ss = new String(Base64.getEncoder().encode(bytes),Charsets.ISO_8859_1);
// decode
is = new ByteArrayInputStream(Base64.getDecoder().decode(ss.getBytes(Charsets.ISO_8859_1)));
// 测试生成文件和原文件对比
FileUtils.copyInputStreamToFile(is,new File("/Users/mac/Desktop/B612/ms/mp4/k7-copy01.mp4"));
// 关闭流
if(is != null){
is.close();
}
if(inputStream != null){
inputStream.close();
}
}