java从redis中下载文件到本地-代码记录

常用代码记录

 

 1     /**
 2      * 从redis中下载文件
 3      * @param originFileName 文件名称
 4      * @param key redis 的key
 5      * @param path 需要下载到什么地方
 6      */
 7     private void downFileForRedis(String originFileName, String key, String path) {
 8         byte[] bytesForRedis = (byte[]) RedisUtil.getObjectValue(key);
 9 
10         File downFileDir = getFileObj(path);
11         if (downFileDir.listFiles() != null) {
12             for (File file : downFileDir.listFiles()) {
13                 file.delete();
14             }
15         }
16         try (ByteArrayInputStream bis = new ByteArrayInputStream(bytesForRedis);
17              FileOutputStream fileOut = new FileOutputStream(downFileDir.getPath() + File.separatorChar + originFileName);
18              BufferedOutputStream bos = new BufferedOutputStream(fileOut);
19         ) {
20             byte[] buf = new byte[4096];
21             int length = bis.read(buf);
22             //保存文件
23             while (length != -1) {
24                 bos.write(buf, 0, length);
25                 length = bis.read(buf);
26             }
27             RedisUtil.delObjectValue(key);
28         } catch (Exception e) {
29             logger.error("down for redis error", e);
30         }
31     }
32 
33     /**
34      * 获取基于基础路径  @see getBasePath()
35      * 文件夹的对象,如果不存在则创建
36      * @param path
37      * @return
38      */
39     private File getFileObj(String path) {
40         String basePath = getBasePath();
41 
42         File downFileDir = new File(basePath + File.separatorChar + path);
43         if (!downFileDir.exists()) {
44             downFileDir.mkdir();
45 
46         }
47         return downFileDir;
48     }
49 
50 
51     /**
52      * 获取文件存放的基础路径
53      * @return
54      */
55     private String getBasePath() {
56         ApplicationHome h = new ApplicationHome(XXXX.class);
57         File jarF = h.getSource();
58         File parentFile = jarF.getParentFile();
59         File parentParentFile = parentFile.getParentFile();
60         String parentParentPath = parentParentFile.toString();
61         String downDir = "down";
62         String basePath = parentParentPath + File.separatorChar + downDir;
63 
64         File file = new File(basePath);
65         if (!file.exists()) {
66             file.mkdir();
67 
68         }
69         return basePath;
70     }

 

posted on 2020-02-20 10:47  坚守信念  阅读(670)  评论(0编辑  收藏  举报

导航