聊一聊文件编程
文件编程常见的又Execl 文件 Word文件,,
可是如果来了一个需求,对上传的文件进行了限制,要求.yml文件上传,这时java后端应该怎么处理这个文件才能解析出文件里面的数据呢?
第一步
引入处理yml文件的依赖
<!-- 解析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 的文件
File f = new File(名字+".yml");
try {
f.createNewFile();
} catch (IOException e) {
log.error("文件创建失败");
e.printStackTrace();
}
第四步:
写入文件
//写入文件
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
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文件
//删除文件
File file1=new File(pathId+".yml");
if(file1.exists()){
file1.delete();
}else {
log.error("文件删除失败");
}
这些都是常规做法
最后
以上就是魁梧热狗最近收集整理的关于yml文件编程的全部内容,更多相关yml文件编程内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复