iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot框架如何管理Xml和CSV文件类型
  • 850
分享到

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

2023-06-02 12:06:30 850人浏览 薄情痞子
摘要

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

这篇文章主要介绍了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文件类型”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: SpringBoot框架如何管理Xml和CSV文件类型

本文链接: https://www.lsjlt.com/news/230002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • SpringBoot框架如何管理Xml和CSV文件类型
    这篇文章主要介绍了SpringBoot框架如何管理Xml和CSV文件类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、文档类型简介1、XML文档XML是可扩展标记语言,是...
    99+
    2023-06-02
  • SpringBoot框架如何管理Xml和CSV
    目录一、文档类型简介1、XML文档2、CSV文档二、XML文件管理1、Dom4j依赖2、基于API封装方法3、执行效果图三、CSV文件管理1、CSV文件样式2、文件读取3、文件创建4...
    99+
    2024-04-02
  • 基于SpringBoot框架如何管理Excel和PDF文件类型
    这篇文章主要介绍基于SpringBoot框架如何管理Excel和PDF文件类型,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、文档类型简介1、Excel文档Excel一款电子表格软件。直观的界面、出色的计算功能和图...
    99+
    2023-06-02
  • Laravel框架如何处理数据类型?
    Laravel是一个非常流行的PHP框架,它提供了许多有用的功能,包括处理数据类型。在本文中,我们将讨论Laravel框架如何处理数据类型,并展示一些示例代码。 数据类型概述 在Laravel中,数据类型是指变量可以存储的值的类型。PH...
    99+
    2023-09-19
    数据类型 laravel spring
  • Spring 框架如何处理数据类型?
    Spring 是一个非常受欢迎的 Java 框架,它的数据类型处理功能是其重要的特性之一。在这篇文章中,我们将探讨 Spring 框架如何处理数据类型,并演示一些代码示例。 基本数据类型转换 Spring 框架提供了一组类型转换器,可...
    99+
    2023-10-24
    数据类型 spring 大数据
  • 如何使用Python path框架来管理存储和文件路径?
    Python是一种高级编程语言,它提供了许多强大的框架和库,其中包括用于管理文件路径的path框架。在本文中,我们将深入了解如何使用Python path框架来管理存储和文件路径,以便您可以更好地组织和管理您的代码和项目。 一、Python...
    99+
    2023-09-09
    path 框架 存储
  • 实体类和xml文件如何相互转换
    这篇文章给大家分享的是有关实体类和xml文件如何相互转换的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下:package com.pcq.entity; i...
    99+
    2024-04-02
  • 如何用SpringBoot框架来接收multipart/form-data文件
    这篇“如何用SpringBoot框架来接收multipart/form-data文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看...
    99+
    2023-07-06
  • 如何在go中使用shell命令来管理文件框架?
    如何在Go中使用Shell命令来管理文件框架? 在Go中使用Shell命令可以让开发者更加方便地管理文件框架。本文将介绍如何在Go中使用Shell命令来实现文件的创建、删除、复制、移动、重命名以及查找等操作。 创建文件 在Go中,我们可...
    99+
    2023-11-10
    文件 框架 shell
  • ASP面试:如何处理文件和数据类型?
    ASP是一种流行的服务器端脚本语言,广泛用于Web开发中。在面试中,如果你想展现自己的ASP技能,那么对于文件和数据类型的处理是必不可少的。 本文将介绍ASP中如何处理文件和数据类型,并通过一些简单的示例代码来演示。 处理文件 在AS...
    99+
    2023-08-30
    面试 文件 数据类型
  • ASP 框架开发技术:如何有效地管理您的文件?
    在 ASP 框架中,文件管理是一个非常重要的部分。合理地管理文件可以大大提高我们的开发效率,让我们更加专注于业务逻辑的实现。在本文中,我们将介绍一些有效的文件管理技术,以帮助您更好地管理您的文件。 一、使用虚拟路径 虚拟路径是指一种通过 ...
    99+
    2023-09-17
    框架 开发技术 文件
  • 如何使用Python打包文件框架轻松管理你的项目?
    Python是一门非常强大的编程语言,因为它可以在不同的应用场景下使用,如机器学习、数据科学、Web应用程序等。因此,许多开发人员使用Python来开发各种项目。但是,如果你不使用任何工具来管理你的项目,可能会变得混乱无序。所以,今天我们将...
    99+
    2023-06-22
    打包 文件 框架
  • Python文件响应框架如何让文件处理更加安全和便捷?
    在Python开发中,我们经常需要处理文件。无论是读取文件、写入文件还是修改文件,文件处理是开发的基础。但是,在处理文件的过程中,我们也会遇到一些问题,例如文件不存在、文件权限不足等等。这些问题可能会导致程序崩溃或者安全问题。为了解决这些...
    99+
    2023-07-20
    响应 文件 框架
  • ASP 框架和 Django 中数据类型的性能对比如何?
    在 Web 开发中,数据类型是极为重要的一环。不同的数据类型在存储、处理、传输上都有着不同的表现和性能。在 ASP 框架和 Django 中,数据类型的选择会直接影响到程序的性能表现。本文将会对 ASP 框架和 Django 中常见的数据...
    99+
    2023-06-20
    框架 数据类型 django
  • 如何在Linux上使用ASP和Django来管理大型文件?
    在今天的大数据时代,文件管理成为了一个非常重要的问题。而在Linux操作系统上,使用ASP和Django来管理大型文件是一个非常好的选择。本文将向您介绍如何在Linux上使用ASP和Django来管理大型文件。 首先,我们需要安装ASP和D...
    99+
    2023-09-20
    django linux 文件
  • 如何在SpringBoot中管理多环境配置文件
    这篇文章给大家介绍如何在SpringBoot中管理多环境配置文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可以通过配置项 spring.profiles.active 的值来激活对应的环境(思路:使用一个默认的文件...
    99+
    2023-06-15
  • GO 中的打包框架:如何处理不同的数据类型?
    在 GO 语言中,打包框架是一个非常重要的概念。它可以将不同类型的数据打包成一个二进制流,以便在网络上传输或存储到磁盘中。GO 语言中的打包框架非常强大,可以处理不同的数据类型,包括基本数据类型、结构体、数组、切片和映射等。 在 GO 语...
    99+
    2023-11-01
    打包 框架 数据类型
  • 如何在Java和Laravel中选择最佳文件框架?
    Java和Laravel都是非常流行的开发语言,它们的应用广泛,特别是在Web开发领域。当我们需要处理文件时,选择一个合适的文件框架是非常重要的。本文将介绍在Java和Laravel中选择最佳文件框架的方法。 Java中的文件框架 Java...
    99+
    2023-08-26
    laravel 文件 框架
  • ASP 文件和 Laravel 框架:如何实现完美匹配?
    随着互联网的快速发展,网站的开发变得越来越重要。ASP 文件和 Laravel 框架是两种常见的网站开发工具。ASP 文件是一种基于服务端的脚本语言,而 Laravel 框架是一个基于 PHP 的 Web 应用程序框架。本文将介绍如何实现...
    99+
    2023-09-01
    文件 laravel 框架
  • ASP 文件和 Laravel 框架:如何实现无缝集成?
    随着Web应用程序的不断发展,越来越多的开发者们需要同时使用ASP文件和Laravel框架进行开发。ASP文件和Laravel框架都是非常好的工具,它们各自具备不同的优势,但是也有一些缺点。在实际开发过程中,如何实现无缝集成ASP文件和L...
    99+
    2023-09-01
    文件 laravel 框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作