重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、使用quarz或者jdk的timer来制定定时任务。
10年积累的成都网站设计、成都网站制作、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有莒南免费网站建设让你可以放心的选择与我们合作。
2、使用jdbc或者hibernate等方法获取数据库中信息。
3、使用xmlbeans或者dom4j等技术生成xml文件。
4、使用sun.net.上传到指定ftp服务器。
dom4j可以试试,不知道你的数据量有多大,如果太大的话,我没试过
xml文件是有规律的,你可以把要导出的数据构造一下,
我有个简单的代码
package com.test.xml;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Dom4JXML {
public void createXML() {
//用工厂类创建一个document实例
Document doc = DocumentHelper.createDocument();
//创建根元素emps
Element rootEle = doc.addElement("emps");
//添加注释
rootEle.addComment("这是一个dom4j生成的xml文件");
//emps根节点下创建一个emp节点
Element empEle = rootEle.addElement("emp");
//emp添加属性id="1"
empEle.addAttribute("id", "1");
//emp节点下创建一个name节点
Element nameEle = empEle.addElement("name");
//name节点下创建一个文本节点zhangsan
nameEle.setText("zhangsan");
//再为name节点创建一个兄弟节点
Element sexEle = empEle.addElement("sex");
sexEle.setText("man");
//将document中的内容写入文件中
try {
Writer out = new FileWriter("F:\\emps.xml");
//格式化输出,类型IE浏览一样
OutputFormat format = OutputFormat.createPrettyPrint();
//OutputFormat format = OutputFormat.createCompactFormat();
format.setEncoding("UTF-8");
//创建写出对象
XMLWriter writer = new XMLWriter(out,format);
writer.write(doc);
writer.close();
System.out.println("生成emps.xml成功。");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("失败了。");
}
}
public static void main(String[] args) {
new Dom4JXML().createXML();
}
}
然而从xml文件中解析以后的数据收集可以用SAX试试看
我这里有个简单的例子
package com.test.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXParseHandler extends DefaultHandler{
public void startDocument()throws SAXException{
System.out.println("起始文挡");
}
public void endDocument()throws SAXException{
System.out.println("结束文挡");
}
public void characters(char[] ch,int start,int length)throws SAXException{
String charString=new String(ch,start,length);
System.out.println("字符:"+charString);
}
public void startElement(String namespaceURI,String localName,String qName,Attributes atts)throws SAXException{
System.out.println("起始元素:"+qName);
for(int i=0;iatts.getLength();i++){
System.out.println("属性值:"+atts.getValue(i));
}
}
public void endElement(String namespaceURI,String localName,String qName)throws SAXException{
System.out.println("结束元素:"+qName);
}
}
package com.test.xml;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class Books {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO 自动生成方法存根
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
parser.parse("booksamp.xml",new SAXParseHandler());
}
}
// 给你一个例子,你参考下
// java通过dom读写xml文件
/*要读的xml文件
?xml version="1.0" encoding="GB2312"?
学生花名册
学生 性别 = "男"
姓名李华/姓名
年龄14/年龄
/学生
学生 性别 = "男"
姓名张三/姓名
年龄16/年龄
/学生
/学生花名册
*/
package xml;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Iterator;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
public class DomTest {
Vector students_Vector;
private Vector readXMLFile(String file) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document doc = builder.parse(file); // 获取到xml文件
// 下面开始读取
Element root = doc.getDocumentElement(); // 获取根元素
NodeList students = root.getElementsByTagName_r("学生");
students_Vector = new Vector();
for (int i = 0; i students.getLength(); i++) {
// 一次取得每一个学生元素
Element ss = (Element) students.item(i);
// 创建一个学生的实例
student stu = new student();
stu.setSex(ss.getAttribute("性别"));
NodeList names = ss.getElementsByTagName_r("姓名");
Element e = (Element) names.item(0);
Node t = e.getFirstChild();
stu.setName(t.getNodeValue());
NodeList ages = ss.getElementsByTagName_r("年龄");
e = (Element) ages.item(0);
t = e.getFirstChild();
stu.setAge(Integer.parseInt(t.getNodeValue()));
students_Vector.add(stu);
}
return students_Vector;
}
// 写入xml文件
public static void callWriteXmlFile(Document doc, Writer w, String encoding) {
try {
Source source = new DOMSource(doc);
Result result = new StreamResult(w);
Transformer xformer = TransformerFactory.newInstance()
.newTransformer();
xformer.setOutputProperty(OutputKeys.ENCODING, encoding);
xformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
private void writeXMLFile(String outfile) {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
try {
builder = dbf.newDocumentBuilder();
} catch (Exception e) {
}
Document doc = builder.newDocument();
Element root = doc.createElement("学生花名册");
doc.appendChild(root); // 将根元素添加到文档上
// 获取学生信息
for (int i = 0; i students_Vector.size(); i++) {
student s = (student) students_Vector.get(i);
// 创建一个学生
Element stu = doc.createElement("学生");
stu.setAttribute("性别", s.getSex());
root.appendChild(stu);// 添加属性
// 创建文本姓名节点
Element name = doc.createElement("姓名");
stu.appendChild(name);
Text tname = doc.createTextNode(s.getName());
name.appendChild(tname);
//创建文本年龄节点
Element age = doc.createElement("年龄");
stu.appendChild(age); // 将age添加到学生节点上
Text tage = doc.createTextNode(String.valueOf(s.getAge()));
age.appendChild(tage); // 将文本节点放在age节点上
}
try {
FileOutputStream fos = new FileOutputStream(outfile);
OutputStreamWriter outwriter = new OutputStreamWriter(fos);
// ((XmlDocument)doc).write(outwriter); //出错!
callWriteXmlFile(doc, outwriter, "gb2312");
outwriter.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
String str = "xml/student.xml";
DomTest t = new DomTest();
try {
Vector v = t.readXMLFile(str);
Iterator it = v.iterator();
while (it.hasNext()) {
student s = (student) it.next();
System.out.println(s.getName() + "\t" + s.getAge() + "\t"
+ s.getSex());
}
} catch (Exception e) {
e.printStackTrace();
}
String outfile = "xml/stucopy.xml";
t.writeXMLFile(outfile);
}
}
class student{
private String sex;
private String name;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String s){sex=s;}
public String getSex(){return sex;}
public void setName(String n){name=n;}
public String getName(){return name;}
}
txt文件格式如下,采用的是一个服务端tomcat的log日志
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.5/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.4.0 (Linux; U; Android 2.3.5; T550 Build/MocorDroid2.3.5)'
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.4/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.4.0 (Linux; U; Android 2.3.4; LG-E730 Build/GRJ22)'
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.5/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.4.0 (Linux; U; Android 2.3.5; MI-ONE Plus Build/GINGERBREAD)'
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.6/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.4.0 (Linux; U; Android 2.3.6; GT-I9220 Build/GINGERBREAD)'
[06/Mar/2013:18:43:55] 110.110.1.1 POST /rest/keyword/getallids/aid/3/os/android4.0.3/ver/1.0/ HTTP/1.1 200 210 1469 1.469 'Dalvik/1.6.0 (Linux; U; Android 4.0.3; HUAWEI C8812 Build/HuaweiC8812)'
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.2.2/ver/1.0/ HTTP/1.1 200 210 1453 1.453 'Dalvik/1.2.0 (Linux; U; Android 2.2.2; HUAWEI T8300 Build/FRF91)'
[06/Mar/2013:18:43:55] 110.110.1.1 GET /rest/keyword/getallids/aid/3/os/android2.3.6/ver/1.0/ HTTP/1.0 200 210 1484 1.484 'Dalvik/1.4.0 (Linux; U; Android 2.3.6; Mytel Build/GRK39F)'
[06/Mar/2013:18:43:55] 110.110.1.1 POST /rest/keyword/getallids/aid/3/os/android4.1.1/ver/1.0/ HTTP/1.1 200 210 1406 1.406 'Dalvik/1.6.0 (Linux; U; Android 4.1.1; GT-N7100 Build/JRO03C)'
转换代码如下
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;
public class promble04 {
@SuppressWarnings("resource")
public static void txtToXML(String txtPath) throws IOException
{
File file = new File(txtPath);
Document document = DocumentHelper.createDocument();
Element list = document.addElement("list");
BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while(line!=null)
{
String temp[] = line.split(" ");
Element log = list.addElement("log");
Element time = log.addElement("time");
Element ip = log.addElement("ip");
Element httpType = log.addElement("httpType");
Element url = log.addElement("url");
Element httplevel = log.addElement("httplevel");
Element linuxVersion = log.addElement("linuxVersion");
Element os = log.addElement("os");
Element AndroidVersion = log.addElement("AndroidVersion");
Element phoneType = log.addElement("phoneType");
for(int i = 0;itemp.length;i++)
{
time.setText(temp[0]);
ip.setText(temp[1]);
httpType.setText(temp[2]);
url.setText(temp[3]);
httplevel.setText(temp[4]);
linuxVersion.setText(temp[9]);
os.setText(temp[10]);
AndroidVersion.setText(temp[12]);
phoneType.setText(temp[13]);
}
line = br.readLine();
}
Writer filewriter = new FileWriter("D:\\log\\test.xml");
XMLWriter xmlWriter = new XMLWriter(filewriter);
xmlWriter.write(document);
xmlWriter.close();
}
public static void main(String args[]) throws IOException
{
promble04.txtToXML("D:\\log\\test.txt");
}
}
转换结果如下
?xml version="1.0" encoding="UTF-8"?
list
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.3.5/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.4.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.3.5;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.3.4/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.4.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.3.4;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.3.5/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.4.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.3.5;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.3.6/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.4.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.3.6;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypePOST/httpType
url/rest/keyword/getallids/aid/3/os/android4.0.3/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.6.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType4.0.3;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.2.2/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.2.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.2.2;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypeGET/httpType
url/rest/keyword/getallids/aid/3/os/android2.3.6/ver/1.0//url
httplevelHTTP/1.0/httplevel
linuxVersion'Dalvik/1.4.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType2.3.6;/phoneType
/log
log
time[06/Mar/2013:18:43:55]/time
ip110.110.1.1/ip
httpTypePOST/httpType
url/rest/keyword/getallids/aid/3/os/android4.1.1/ver/1.0//url
httplevelHTTP/1.1/httplevel
linuxVersion'Dalvik/1.6.0/linuxVersion
os(Linux;/os
AndroidVersionAndroid/AndroidVersion
phoneType4.1.1;/phoneType
/log
/list