输出数据到xml文件(java实现)

来源:互联网 发布:网络工作人员工资待遇 编辑:程序博客网 时间:2024/06/14 09:34
package com.xiuye.utils;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Random;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;public class OutputEmpListXml {public static void main(String[] args) {// prepare char's array to generate random namechar letters[] = new char[54];letters[0] = ' ';letters[1] = '-';// a~zfor (int i = 0 + 2, j = 0; i < 26 + 2 && j < 26; i++, j++) {letters[i] = (char) ('a' + j);}// A~Zfor (int i = 0 + 2 + 26, j = 0; i < 26 + 2 + 26 && j < 26; i++, j++) {letters[i] = (char) ('A' + j);}String sexs[] = { "man", "woman" };Random rnd = new Random();// the whole xml fileDocument doc = DocumentHelper.createDocument();/** * only one root node,if not, IllegalAddException *  */// node rootElement root = doc.addElement("emp-list");for (int i = 0; i < 1000; i++) {// node empElement emp = root.addElement("emp");int id = rnd.nextInt(9999999);// emp's attribute idemp.addAttribute("id", Integer.toString(id));// node nameElement name = emp.addElement("name");name.setText(generateRandomName(letters));// node ageElement age = emp.addElement("age");// node genederElement geneder = emp.addElement("geneder");// node salaryElement salary = emp.addElement("salary");// random ageint ageInt = rnd.nextInt(100);age.setText(Integer.toString(ageInt));// first way "int -> String"// random sexint index = rnd.nextInt(2);geneder.setText(sexs[index]);// random salaryint money = rnd.nextInt(10000000);salary.setText("" + money);// second way "int -> String"}try {FileOutputStream out = new FileOutputStream("EmpList.xml");OutputFormat format = OutputFormat.createPrettyPrint();XMLWriter xmlw = new XMLWriter(out,format);xmlw.write(doc);xmlw.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}System.out.println("that's over!");}// get a simple random nameprivate static String generateRandomName(char[] letters) {//String name = null;/** * name cannot be bull,beacause of  * null += "ABC";=> nullABC * it's not my wanted. *  */String name = "";int nameLength = (int) (Math.random() * letters.length) + 1;for (int i = 0; i < nameLength; i++) {int index = (int) (Math.random() * letters.length);name += "" + letters[index];}return name;}}

0 0