1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder

2.拼接好后写入文件即可,将多个实体类写入xml文件

3.这种方式比较简单,但是操作也比较麻烦

4.下面是我的代码:

@1测试代码,数据是模拟的productXmlFile是测试类

package operator.hui.xml;

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; /*
* 生成xml文件的类
*/
public class CreateXmlFile { public static void main(String[] args) {
// TODO Auto-generated method stub
List<Sms> lists = new ArrayList<Sms>();
for (int i = 0; i < 10; i++) {
Sms s = new Sms();
s.setAddr("1870087098"+i);
s.setContent("小明,你女朋友来了");
s.setDate("2000"+"-"+i+"-"+i+2+" "+"12:16:37");
lists.add(s);
}
productXmlFile("f://sms.xml",lists);
test(); } private static void test() {
// TODO Auto-generated method stub
System.out.println(CreateXmlFile.class.getSimpleName());
} /*
* 生成名为name的根节点为root的xml文件,这个文件存储lists这个集合的数据,path为文件路径
*
*/
public static void productXmlFile(String path,List<Sms> lists){ StringBuffer bf = new StringBuffer();
//组拼xml文件头
bf.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
bf.append("\n");
//组拼根节点
bf.append("<smss>");
bf.append("\n");
for (Iterator iterator = lists.iterator(); iterator.hasNext();) {
Sms sms = (Sms) iterator.next();
System.out.println(sms.getAddr());
sms.productPoint(bf); }
bf.append("\n");
bf.append("</smss>"); File f = new File(path);
try {
FileOutputStream fos = new FileOutputStream(f);
fos.write(bf.toString().getBytes("utf8"));
fos.flush();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

@2javabean类Sms,实现了生成节点的接口

package operator.hui.xml;

import java.util.Date;

/**
* 短信数据封装类
* @author Administrator
*
*/
public class Sms implements ProductRuler{ //短信来源
private String addr;
//短信内容
private String content;
//短息日期
private String date;
public Sms() {
// TODO Auto-generated constructor stub
} public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
} @Override
public void productPoint(StringBuffer sb) {
sb.append("\t");
sb.append("<"+this.getClass().getSimpleName()+">");
sb.append("\n");
sb.append("\t\t");
sb.append("<addr>");
sb.append(this.addr);
sb.append("</addr>");
sb.append("\n");
sb.append("\t\t");
sb.append("<content>");
sb.append(this.content);
sb.append("</content>");
sb.append("\n");
sb.append("\t\t");
sb.append("<date>");
sb.append(this.date);
sb.append("</date>");
sb.append("\n");
sb.append("\t");
sb.append("</"+this.getClass().getSimpleName()+">");
sb.append("\n"); } }

@3生成节点的接口,只有一个方法,

package operator.hui.xml;

/*
* 具体的xml内部节点生成规则
*/
public interface ProductRuler { /*在sb中生成节点*/
void productPoint(StringBuffer sb); }

@4运行结果:

Console控制台

生成的xml文件

生成的 文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<smss>
<Sms>
<addr>18700870980</addr>
<content>小明,你女朋友来了</content>
<date>2000-0-010 12:16:37</date>
</Sms>
<Sms>
<addr>18700870981</addr>
<content>小明,你女朋友来了</content>
<date>2000-1-110 12:16:37</date>
</Sms>
<Sms>
<addr>18700870982</addr>
<content>小明,你女朋友来了</content>
<date>2000-2-210 12:16:37</date>
</Sms>
<Sms>
<addr>18700870983</addr>
<content>小明,你女朋友来了</content>
<date>2000-3-310 12:16:37</date>
</Sms>
<Sms>
<addr>18700870984</addr>
<content>小明,你女朋友来了</content>
<date>2000-4-410 12:16:37</date>
</Sms>
<Sms>
<addr>18700870985</addr>
<content>小明,你女朋友来了</content>
<date>2000-5-510 12:16:37</date>
</Sms>
<Sms>
<addr>18700870986</addr>
<content>小明,你女朋友来了</content>
<date>2000-6-610 12:16:37</date>
</Sms>
<Sms>
<addr>18700870987</addr>
<content>小明,你女朋友来了</content>
<date>2000-7-710 12:16:37</date>
</Sms>
<Sms>
<addr>18700870988</addr>
<content>小明,你女朋友来了</content>
<date>2000-8-810 12:16:37</date>
</Sms>
<Sms>
<addr>18700870989</addr>
<content>小明,你女朋友来了</content>
<date>2000-9-910 12:16:37</date>
</Sms> </smss>

xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)的更多相关文章

  1. Power Designer导出实体类和NHibernate xml文件

    Power Designer导出实体类和NHibernate xml文件 今天研究了一下通过PowerDesigner生成实体类和NHibernate所需要的xml文件,方法是通过Power Desi ...

  2. c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具

    c#实例化继承类,必须对被继承类的程序集做引用   0x00 问题 类型“Model.NewModel”在未被引用的程序集中定义.必须添加对程序集“Model, Version=1.0.0.0, Cu ...

  3. Java基础之序列化对象——将对象写入到文件中(SerializeObjects)

    控制台程序. 首先定义一个含有任意不同数据类型域的可序列化类: import java.io.Serializable; public class Junk implements Serializab ...

  4. 使用 SQL的 for xml path来进行字符串拼接

    本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3: ...

  5. Java工具类_表结构自动生成对应的实体类、Mapper.xml文件、Dao类

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

  6. .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表

    /// <summary> /// 解析xml字符串 转换为实体类列表数据 /// </summary> /// <param name="xmlStr&quo ...

  7. MyBatis从入门到精通:第一章实体类与Mapper.xml文件

    实体类: package tk.mybatis.simple.model; public class Country { public Long getId() { return id; } publ ...

  8. 使用MyEclipse生成实体类和Hibernate映射文件

    1.打开MyEclipse DataBase Explorer. 如上图,点击图中2便可切换到MyEclipse DataBase Explorer,若没有该图标,则点击图中1,便可选择MyEclip ...

  9. 通用类 对象和XML互转

    public class XMLHealper { /// <summary> /// 将自定义对象序列化为XML字符串 /// </summary> /// <para ...

随机推荐

  1. TFboy养成记 多层感知器 MLP

    内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...

  2. 一次php涉及跨域功能的麻烦及解决方案

    一,功能及描述 1,在后台管理网站(php)admin.xxx.com(以下简称admin),上拉取并编辑aaa.xxx.com(php,以下简称aaa)上的图片及文件 2,file_get_cont ...

  3. 【Java入门提高篇】Day5 Java中的回调(二)

    Java中有很多个Timer,常用的有两个Timer类,一个java.util包下的Timer,一个是javax.swing包下的Timer,两个Timer类都有用到回调机制.可以使用它在到达指定时间 ...

  4. vue.js权威指南 PDF

    链接:https://pan.baidu.com/s/1c2ItN6S 密码:ya8r

  5. 企业级分布式监控系统-Zabbix基础

    1.基础分部 1.1Zabbix简介 Zabbix 是一个企业级的分布式开源监控方案. 1.2监控系统架构 C/S架构 客户端/服务器端,这种架构适合规模较小,处于同一地域的环境 C/P/S 客户端/ ...

  6. UWP 五星好评

    var pfn = Package.Current.Id.FamilyName; await Launcher.LaunchUriAsync(new Uri("ms-windows-stor ...

  7. oracle和mysql几点差异对比

    Oracle与mysql差异性总结 之前有个项目是用oracle数据库进行开发,需要把数据库改成mysql,遇到了一些地方需要注意的,就简单记了下来. 备注: 再把oracle转成mysql的时候,表 ...

  8. JMeter接口测试系列-关联参数

    这里主要记录一下A接口的返回结果经过md5加密之后作为另外B接口的参数,这个问题困扰了很久,找了不少资料,现在把解决方法记录如下: 环境 ①JMeter 3.0 ②前置条件:将fastjson.jar ...

  9. Windows中根据端口定位持有者程序

    之前被一个问题所困扰, 电脑过一段时间就无法上网, 查询netstat, 会有大量的端口被占用, 但是看不出来是哪个程序开启的 ( 最终定位到是ADSafe搞得鬼 ) . 后来发现几个命令可以根据端口 ...

  10. Spring3.0官网文档学习笔记(二)

    1.3 使用场景 典型的成熟的spring web应用 spring使用第三方框架作为中间层 远程使用场景 EJB包装 1.3.1 依赖管理.命名规则(包)     spring-*.jar *号代表 ...