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

聊一聊文件编程
文件编程常见的又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文件编程内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部