前言:请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i
今天我们来使用一个极其简单的操作文件工具类,使用apache当中commons下的文件工具类FileUtils,使用它能大大的简化我们对文件的操作。
1、导入FileUtils的依赖
<!-- FileUtils依赖-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
2、引入io包使用FileUtils类生成一张gif图片到磁盘中
//获取网上资源图片,下载到本地磁盘
@RequestMapping("/dowload")
public void dowload()throws Exception{
InputStream in = new URL("http://www.baidu.com/img/baidu_logo.gif").openStream();
byte [] gif = IOUtils.toByteArray(in); //将文件转换字节数组
String outpath = "E:\\test.gif";
FileUtils.writeByteArrayToFile(new File(outpath),gif);//导出路径文件格式,字节数组
}
结果:可以看出E盘根目录下生成了test.gif这么一个文件,测试通过!!!
3、使用FileUtils文件工具类生成MP3格式音频文件
说明:此处音频字节数组是从redis中获取,请关注上篇文章:将音频文件转二进制分包存储到Redis(奇淫技巧操作)
/**
* 从redis中分包取值进行byte[]数组合并解析音频
*/
@RequestMapping("/getkeyAudio")
public void getKey(HttpServletResponse response) throws Exception{
OutputStream os = response.getOutputStream();
List list =redisTemplate.opsForList().range("Audio", 0, -1); //通过key获取指定区间的值,List方式存储用List集合去接收
//合并音频字节数组
List<byte[]> blist = list;
int lengthTotal = 0;
for (byte[] item : blist) {
lengthTotal += item.length;
}
byte[] totalByte = new byte[lengthTotal];
int begin = 0;
for (byte[] item : blist) {
//System.arraycopy(原数组, 原数组起始位置, 目标数组, 目标数组起始位置, 复制长度);
System.arraycopy(item, 0, totalByte, begin, item.length);
begin += item.length;
}
String outfile = "E:\\Audio.mp3";
FileUtils.writeByteArrayToFile(new File(outfile),totalByte);//导出路径文件格式,字节数组
}
结果:再次回到E盘,效果和我预期的一致生成了MP3格式的音频文件(可以正常播放的哈!)
个人总结:
我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!