SpringBoot框架如何管理Xml和CSV文件类型
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了SpringBoot框架如何管理Xml和CSV文件类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、文档类型简介
千家信息网最后更新 2025年01月19日SpringBoot框架如何管理Xml和CSV文件类型
这篇文章主要介绍了SpringBoot框架如何管理Xml和CSV文件类型,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一、文档类型简介
1、XML文档
XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如数据结构,格式等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。适合网络传输,提供统一的方法来描述和交换应用程序的结构化数据。
2、CSV文档
CSV文档,以逗号分隔文档内容值,其文件以纯文本形式存储结构数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号。CSV是一种通用的、相对简单的文件格式,通常被用在大数据领域,进行大规模的数据搬运操作。
二、XML文件管理
1、Dom4j依赖
Dom4j是基于Java编写的XML文件操作的API包,用来读写XML文件。具有性能优异、功能强大和简单易使用的特点。
dom4j dom4j 1.6.1 jaxen jaxen 1.1.6
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 ; } /** * 创建XML文档 */ 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、执行效果图
三、CSV文件管理
1、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); ListdataInfoList = 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(ListdataList,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 { ListdataList = new ArrayList<>() ; dataList.add("1,北京,beijing") ; dataList.add("2,上海,shanghai") ; dataList.add("3,苏州,suzhou") ; csvService.createCsv(dataList,path); return "success" ; }}
感谢你能够认真阅读完这篇文章,希望小编分享的"SpringBoot框架如何管理Xml和CSV文件类型"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
文件
数据
节点
文档
标记
管理
UTF-8
类型
篇文章
结构
语言
接口
方法
编码
输出
框架
信息
字段
字符
格式
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全实验报告多春红
多应用服务器用一个数据库服务器
网易 软件开发 怎么样
简答题网络安全策略的设计原则
乡镇网络安全风险防控体系
角色组数据库
服务器平台搭建教程
环保局网络安全自查自纠报告
702研究所软件开发工资
汕尾市网络安全知识宣传
软件开发为啥减少误差
软件开发工具实践课怎么考
乌鲁木齐人人付网络技术
怎么查看数据库资源利用率
加固阿里云服务器安全
保证网络安全的做法
网络安全管控软件
2019网络安全周 第几界
服务器电源500w多少钱
自己设计数据库中间件
互联网数据库参考文献格式
服务器管理流程
湖北互联网软件开发定制费用
软件开发都什么软件
棋牌软件开发网狐
电站网络安全手抄报内容
cscd数据库影响因子
怀旧服服务器是什么意思
软件开发实习生好找工作吗
索尼相机无法恢复数据库文件