建造者模式实例数据拼接 java生成真实XML文件

简介: 建造者模式实例数据拼接 java生成真实XML文件

导出数据的应用框架,通常对于具体的导出内容和格式是有要求的:
分成三部分,文件头、文件体、文件尾
文件头:分公司编号、导出数据的日期,对于文本格式,中间用逗号分离
文件体:表名称,然后分条描述数据。。。。
文件尾:输出人
不管是输出文本文件,还是输出XML文件,步骤基本一致
先拼接文件头的内容
然后拼接文件体的内容
在拼接文件尾的内容
最后把拼接好的内容输出去成为文件

在这里插入图片描述

Builder

package 建造者模式;

public abstract class Builder {
    protected String id;
    protected String date;
    protected String TableName;
    protected String data;
    protected String Person;
     
     
    public Builder(String id, String date, String tableName, String data,String person)
    {
        this.id = id;
        this.date = date;
        TableName = tableName;
        this.data = data;
        Person = person;
    }
    public abstract void BuildHead();
    public abstract void BuildBody();
    public abstract void BuildFoot();
}
AI 代码解读

TXT

package 建造者模式;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class TXT extends Builder {
    public TXT(String id, String date, String tableName, String data,
            String person) {
        super(id, date, tableName, data, person);
    }
private String str="";
    
@Override
public void BuildHead() {
    str+=id+","+date+"\r\n";
    
}
@Override
public void BuildBody() {
    str+=TableName+"\r\n";
    str+=data+"\r\n";
    
}
@Override
public void BuildFoot() {
    str+=Person+"\r\n";
    
}
public void Result() throws IOException{
    File f1=new File("c:\\a.txt");
    FileWriter fw=new FileWriter(f1);
    BufferedWriter bw=new BufferedWriter(fw); 
            bw.write(str);
            bw.close();
 
 
}
}
AI 代码解读

XML

package 建造者模式;

import java.io.File;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.*;

public class XML extends Builder {
    private Document document;
    private Element container;
public XML(String id, String date, String tableName, String data,
            String person) throws ParserConfigurationException 
            {
        super(id, date, tableName, data, person);        
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = factory.newDocumentBuilder();
         document = db.newDocument();
    }
 
 
    @Override
    public void BuildHead() {
        document.setXmlStandalone(true);
        container=document.createElement("Conatiner");
        Element head=document.createElement("Head");
        
        Element Id = document.createElement("Id");
        Id.setTextContent(id);
        
        Element Date = document.createElement("Date");
        Date.setTextContent(date);
        head.appendChild(Id);
        head.appendChild(Date);
    container.appendChild(head);
        
        
    }
 
 
    @Override
    public void BuildBody() {
        
        Element Body=document.createElement("body");
        Element tname = document.createElement("TableName");
        tname.setTextContent(TableName);
        
        Element Data = document.createElement("Data");
        Data.setTextContent(data);
        Body.appendChild(Data);
        Body.appendChild(tname);
        container.appendChild(Body);
        
    }
 
 
    @Override
    public void BuildFoot() {
        
        
        Element foot=document.createElement("foot");
        Element per = document.createElement("Person");
        per.setTextContent(Person);
        foot.appendChild(per);
        container.appendChild(foot);
        document.appendChild(container);
    }
    public void Result() throws TransformerException
    {TransformerFactory tff = TransformerFactory.newInstance();
 
    Transformer tf = tff.newTransformer();
    
    tf.setOutputProperty(OutputKeys.INDENT, "yes");
    tf.transform(new DOMSource(document), new StreamResult(new File("g:/shujv.xml")));
    }
}
AI 代码解读

Director

package 建造者模式;

public class Director {

private Builder eb;
 
public Director(Builder eb) {
    
    this.eb = eb;
}
public void Build(){
    eb.BuildHead();
    eb.BuildBody();
    eb.BuildFoot();
}
}
AI 代码解读

Test

package 建造者模式;

import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;

public class Test {
public static void main(String args[]) throws IOException, ParserConfigurationException, TransformerException{
    TXT tb=new TXT("001","2020/4/16","数目","20","张三");
        Director dr=new Director(tb);
        dr.Build();
        tb.Result();
        XML ex=new XML("002","2020/4/17","价格","30","李四");
    dr=new Director(ex);
    dr.Build();
    ex.Result();
    }
}
AI 代码解读
目录
打赏
0
0
0
0
0
分享
相关文章
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
Java技术栈揭秘:Base64加密和解密文件的实战案例
以上就是我们今天关于Java实现Base64编码和解码的实战案例介绍。希望能对你有所帮助。还有更多知识等待你去探索和学习,让我们一同努力,继续前行!
111 5
实现Java语言的文件断点续传功能的技术方案。
像这样,我们就完成了一项看似高科技、实则亲民的小工程。这样的技术实现不仅具备实用性,也能在面对网络不稳定的挑战时,稳稳地、不失乐趣地完成工作。
48 0
|
8月前
|
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
172 9
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
211 2
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
1397 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
解锁“分享文件”高效密码:探秘 Java 二叉搜索树算法
在信息爆炸的时代,文件分享至关重要。二叉搜索树(BST)以其高效的查找性能,为文件分享优化提供了新路径。本文聚焦Java环境下BST的应用,介绍其基础结构、实现示例及进阶优化。BST通过有序节点快速定位文件,结合自平衡树、多线程和权限管理,大幅提升文件分享效率与安全性。代码示例展示了文件插入与查找的基本操作,适用于大规模并发场景,确保分享过程流畅高效。掌握BST算法,助力文件分享创新发展。
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
118 4
|
7月前
|
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
217 34
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问