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

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

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

4.下面是我的代码:

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

packageoperator.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文件的类 */publicclassCreateXmlFile{publicstaticvoid main(String[] args){// TODO Auto-generated method stubList<Sms> lists =newArrayList<Sms>();for(int i =0; i <10; i++){Sms s =newSms(); s.setAddr(“1870087098”+i); s.setContent(“小明,你女朋友来了”); s.setDate(“2000”+“-“+i+“-“+i+2+” “+“12:16:37”); lists.add(s);} productXmlFile(“f://sms.xml”,lists); test();}privatestaticvoid test(){// TODO Auto-generated method stubSystem.out.println(CreateXmlFile.class.getSimpleName());}/* * 生成名为name的根节点为root的xml文件,这个文件存储lists这个集合的数据,path为文件路径 * */publicstaticvoid productXmlFile(String path,List<Sms> lists){StringBuffer bf =newStringBuffer();//组拼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 =newFile(path);try{FileOutputStream fos =newFileOutputStream(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(“”);

sb.append(this.addr);

sb.append(“”);

sb.append(“\n”);

sb.append(“\t\t”);

sb.append(“”);

sb.append(this.content);

sb.append(“”);

sb.append(“\n”);

sb.append(“\t\t”);

sb.append(“”);

sb.append(this.date);

sb.append(“”);

sb.append(“\n”);

sb.append(“\t”);

sb.append(”
“);

sb.append(“\n”); }}

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

package operator.hui.xml;/*

* 具体的xml内部节点生成规则

*/

public interface ProductRuler { /*在sb中生成节点*/

void productPoint(StringBuffer sb);}

@4运行结果:

Console控制台

生成的xml文件

生成的 文件内容:

18700870980

小明,你女朋友来了

2000-0-010 12:16:37

18700870981

小明,你女朋友来了

2000-1-110 12:16:37

18700870982

小明,你女朋友来了

2000-2-210 12:16:37

18700870983

小明,你女朋友来了

2000-3-310 12:16:37

18700870984

小明,你女朋友来了

2000-4-410 12:16:37

18700870985

小明,你女朋友来了

2000-5-510 12:16:37

18700870986

小明,你女朋友来了

2000-6-610 12:16:37

18700870987

小明,你女朋友来了

2000-7-710 12:16:37

18700870988

小明,你女朋友来了

2000-8-810 12:16:37

18700870989

小明,你女朋友来了

2000-9-910 12:16:37

</Sms></smss>

发表回复

后才能评论