我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot框架如何管理Xml和CSV文件类型

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot框架如何管理Xml和CSV文件类型

这篇文章主要介绍了SpringBoot框架如何管理Xml和CSV文件类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、文档类型简介

1、XML文档

XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如数据结构,格式等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。适合网络传输,提供统一的方法来描述和交换应用程序的结构化数据。

2、CSV文档

CSV文档,以逗号分隔文档内容值,其文件以纯文本形式存储结构数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号。CSV是一种通用的、相对简单的文件格式,通常被用在大数据领域,进行大规模的数据搬运操作。

二、XML文件管理

1、Dom4j依赖

Dom4j是基于Java编写的XML文件操作的API包,用来读写XML文件。具有性能优异、功能强大和简单易使用的特点。

<dependency>    <groupId>dom4j</groupId>    <artifactId>dom4j</artifactId>    <version>1.6.1</version></dependency><dependency>    <groupId>jaxen</groupId>    <artifactId>jaxen</artifactId>    <version>1.1.6</version></dependency>

2、基于API封装方法

涉及对XML文件读取、加载、遍历、创建、修改、删除等常用方法。

public class XmlUtil {        public static Document getDocument (String filename) {        File xmlFile = new File(filename) ;        Document document = null;        if (xmlFile.exists()){            try{                SAXReader saxReader = new SAXReader();                document = saxReader.read(xmlFile);            } catch (Exception e){                e.printStackTrace();            }        }        return document ;    }        public static Document iteratorNode (String filename) {        Document document = getDocument(filename) ;        if (document != null) {            Element root = document.getRootElement();            Iterator iterator = root.elementIterator() ;            while (iterator.hasNext()) {                Element element = (Element) iterator.next();                System.out.println(element.getName());            }        }        return document ;    }        public static void createXML (String filePath) throws Exception {        // 创建 Document 对象        Document document = DocumentHelper.createDocument();        // 创建节点,首个节点默认为根节点        Element rootElement = document.addElement("project");        Element parentElement = rootElement.addElement("parent");        parentElement.addComment("版本描述") ;        Element groupIdElement = parentElement.addElement("groupId") ;        Element artifactIdElement = parentElement.addElement("artifactId") ;        Element versionElement = parentElement.addElement("version") ;        groupIdElement.setText("SpringBoot2");        artifactIdElement.setText("spring-boot-starters");        versionElement.setText("2.1.3.RELEASE");        //设置输出编码        OutputFormat format = OutputFormat.createPrettyPrint();        File xmlFile = new File(filePath);        format.setEncoding("UTF-8");        XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFile),format);        writer.write(document);        writer.close();    }        public static void updateXML (String filePath) throws Exception {        Document document = getDocument (filePath) ;        if (document != null){            // 修改指定节点            List elementList = document.selectNodes("/project/parent/groupId");            Iterator iterator = elementList.iterator() ;            while (iterator.hasNext()){                Element element = (Element) iterator.next() ;                element.setText("spring-boot-2");            }            //设置输出编码            OutputFormat format = OutputFormat.createPrettyPrint();            File xmlFile = new File(filePath);            format.setEncoding("UTF-8");            XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFile),format);            writer.write(document);            writer.close();        }    }        public static void removeElement (String filePath) throws Exception {        Document document = getDocument (filePath) ;        if (document != null){            // 修改指定节点            List elementList = document.selectNodes("/project/parent");            Iterator iterator = elementList.iterator() ;            while (iterator.hasNext()){                Element parentElement = (Element) iterator.next() ;                Iterator parentIterator = parentElement.elementIterator() ;                while (parentIterator.hasNext()){                    Element childElement = (Element)parentIterator.next() ;                    if (childElement.getName().equals("version")) {                        parentElement.remove(childElement) ;                    }                }            }            //设置输出编码            OutputFormat format = OutputFormat.createPrettyPrint();            File xmlFile = new File(filePath);            format.setEncoding("UTF-8");            XMLWriter writer = new XMLWriter(new FileOutputStream(xmlFile),format);            writer.write(document);            writer.close();        }    }    public static void main(String[] args) throws Exception {        String filePath = "F:\\file-type\\project-cf.xml" ;        // 1、创建文档        Document document = getDocument(filePath) ;        System.out.println(document.getRootElement().getName());        // 2、根节点遍历        iteratorNode(filePath);        // 3、创建XML文件        String newFile = "F:\\file-type\\project-cf-new.xml" ;        createXML(newFile) ;        // 4、更新XML文件        updateXML(newFile) ;        // 5、删除节点        removeElement(newFile) ;    }}

3、执行效果图

SpringBoot框架如何管理Xml和CSV文件类型

三、CSV文件管理

1、CSV文件样式

SpringBoot框架如何管理Xml和CSV文件类型

这里不需要依赖特定的Jar包,按照普通的文件读取即可。

2、文件读取

@Async@Overridepublic void readNotify(String path, Integer columnSize) throws Exception {    File file = new File(path) ;    String fileName = file.getName() ;    int lineNum = 0 ;    if (fileName.startsWith("data-")) {        InputStreamReader isr = new InputStreamReader(new FileInputStream(file),"GBK") ;        BufferedReader reader = new BufferedReader(isr);        List<DataInfo> dataInfoList = new ArrayList<>(4);        String line  ;        while ((line = reader.readLine()) != null) {            lineNum ++ ;            String[] dataArray = line.split(",");            if (dataArray.length == columnSize) {                String cityName = new String(dataArray[1].getBytes(),"UTF-8") ;                dataInfoList.add(new DataInfo(Integer.parseInt(dataArray[0]),cityName,dataArray[2])) ;            }            if (dataInfoList.size() >= 4){                LOGGER.info("容器数据:"+dataInfoList);                dataInfoList.clear();            }        }        if (dataInfoList.size()>0){            LOGGER.info("最后数据:"+dataInfoList);        }        reader.close();    }    LOGGER.info("读取数据条数:"+lineNum);}

3、文件创建

@Async@Overridepublic void createCsv(List<String> dataList,String path) throws Exception {    File file = new File(path) ;    boolean createFile = false ;    if (file.exists()){        boolean deleteFile = file.delete() ;        LOGGER.info("deleteFile:"+deleteFile);    }    createFile = file.createNewFile() ;    OutputStreamWriter ost = new OutputStreamWriter(new FileOutputStream(path),"UTF-8") ;    BufferedWriter out = new BufferedWriter(ost);    if (createFile){        for (String line:dataList){            if (!StringUtils.isEmpty(line)){                out.write(line);                out.newLine();            }        }    }    out.close();}

4、编写测试接口

这里基于Swagger2管理接口测试 。

@Api("Csv接口管理")@RestControllerpublic class CsvWeb {    @Resource    private CsvService csvService ;    @ApiOperation(value="文件读取")    @GetMapping("/csv/readNotify")    public String readNotify (@RequestParam("path") String path,                              @RequestParam("column") Integer columnSize) throws Exception {        csvService.readNotify(path,columnSize);        return "success" ;    }    @ApiOperation(value="创建文件")    @GetMapping("/csv/createCsv")    public String createCsv (@RequestParam("path") String path) throws Exception {        List<String> dataList = new ArrayList<>() ;        dataList.add("1,北京,beijing") ;        dataList.add("2,上海,shanghai") ;        dataList.add("3,苏州,suzhou") ;        csvService.createCsv(dataList,path);        return "success" ;    }}

感谢你能够认真阅读完这篇文章,希望小编分享的“SpringBoot框架如何管理Xml和CSV文件类型”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot框架如何管理Xml和CSV文件类型

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot框架如何管理Xml和CSV文件类型

这篇文章主要介绍了SpringBoot框架如何管理Xml和CSV文件类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、文档类型简介1、XML文档XML是可扩展标记语言,是
2023-06-02

基于SpringBoot框架如何管理Excel和PDF文件类型

这篇文章主要介绍基于SpringBoot框架如何管理Excel和PDF文件类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、文档类型简介1、Excel文档Excel一款电子表格软件。直观的界面、出色的计算功能和图
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录