我是靠谱客的博主 魁梧热狗,这篇文章主要介绍yml文件编程,现在分享给大家,希望可以做个参考。

聊一聊文件编程
文件编程常见的又Execl 文件 Word文件,,
可是如果来了一个需求,对上传的文件进行了限制,要求.yml文件上传,这时java后端应该怎么处理这个文件才能解析出文件里面的数据呢?
第一步
引入处理yml文件的依赖

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!-- 解析yml依赖--> <dependency> <groupId>org.jyaml</groupId> <artifactId>jyaml</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-yaml</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.11.1</version> </dependency> <!-- yml依赖结束-->

第二步:
校验
校验文件是否为空
校验文件名后缀
第三步:
在服务端创建一个 名字.yml 的文件

复制代码
1
2
3
4
5
6
7
8
File f = new File(名字+".yml"); try { f.createNewFile(); } catch (IOException e) { log.error("文件创建失败"); e.printStackTrace(); }

第四步:
写入文件

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//写入文件 FileOutputStream fos = null; try { fos = new FileOutputStream(名字+".yml"); fos.write(file.getBytes()); // 写入文件 } catch (Exception e) { log.error("文件写入失败"); e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { log.error("流关闭失败"); e.printStackTrace(); } }

第五步:
解析yml

复制代码
1
2
3
4
5
6
7
8
9
10
ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); try { //TestEntity要根据yml文件的内容自己创建 TestEntity student = mapper.readValue(new File(名字+".yml"), TestEntity.class); System.err.println(student); } catch (IOException e) { log.error("文件解析失败"); e.printStackTrace(); }

这一步有坑,如果再controller的代码里面创建ObjectMapper mapper = new ObjectMapper(new YAMLFactory());会报莫名奇怪的错,所以放在service里面就不会报错,,,由此观之,spring架构深不可测。
要想以对象的方式而非map的方式解析yml文件,必须要有yml文件的路径,这就是为什么一定要创建 .yml文件的原因了
第六步
删除.yml文件

复制代码
1
2
3
4
5
6
7
8
//删除文件 File file1=new File(pathId+".yml"); if(file1.exists()){ file1.delete(); }else { log.error("文件删除失败"); }

这些都是常规做法

最后

以上就是魁梧热狗最近收集整理的关于yml文件编程的全部内容,更多相关yml文件编程内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部