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. angular2.x指令

    1.指令 *ngIf: 判断 isActive 为true时 <user-detail> 生效展示 <user-detail *ngIf="isActive"&g ...

  2. struts2对于处理JSON的配置

    由于最近几年日益流行前后端分离模式,JSON作为数据载体也变得不可或缺.几乎所有的web框架都需要支持JSON,下面咱就一起了解下struts2是如何支持JSON的. 对于JSON的发送 这里有两种方 ...

  3. SQL---存储过程---sp_addextendedproperty表字段加描述

    相信很多朋友对利用SQL创建表已经很熟悉了,但我们发现在创建表的同时不能像添加默认值或者主键一样为列加上说明信息,所以我们经常是创建表后再到表的可视化设计器中为列加上说明,这样操作起来就相当麻烦了,本 ...

  4. C语言之最大公约数与最小公倍数

    #include<stdio.h>int main(){ int num1, num2,temp; scanf("%d%d",&num1,&num2); ...

  5. java+jsp+sql server实现网页版四则运算.

    设计思路: 1需要的工具以及实现这个算法和代码的事先条件. (1)sql server里面建议一个叫t_result的表)(当然你起什么名字都可以),里面输入所需要的列名.id,firstnumber ...

  6. 享元模式(Flyweight)

    享元模式(Flyweight) 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用. FlyWeightFactory负责创建和管理享元单元, ...

  7. 异常处理-try catch

    一:try catch是什么 try catch是java程序设计中处理异常的重要组成部分 异常是程序中的一些错误,有些异常需要做处理,有些则不需要捕获处理,异常是针对方法来说的,抛出.声明抛出.捕获 ...

  8. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)

    很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互.RESTful则是一种软件架构风格.设 ...

  9. git学习——Github关联(2)

    一.参考学习链接 1.重点看Github与Git的关联. http://www.cnblogs.com/schaepher/p/5561193.html#github 2.git的全面详细介绍. ht ...

  10. [安全]服务器安全之 PHP权限目录

    1.为每个主机配置增加一个 fastcgi_param  PHP_VALUE  "open_basedir=$document_root:/tmp/";  或是直接把这句话放到fa ...