# Logdaten als XML speichern und lesen



## Jboss (30. Nov 2008)

Hi ihrseits,

folgendes Problem : ich möchte bei jedem Login die Logindaten inkrementell in eine XML-Datei  schreiben und an einer anderen Stelle wieder auslesen. Da ich noch nicht mit XML erfahrung gemacht habe, was könnt ihr mir empfehlen.


danke im voraus


----------



## André Uhres (1. Dez 2008)

Jboss hat gesagt.:
			
		

> ich möchte bei jedem Login die Logindaten inkrementell in eine XML-Datei  schreiben und an einer anderen Stelle wieder auslesen.


Eine Möglichkeit besteht mit XMLEncoder/XMLDecoder:

```
import java.beans.*;
import java.io.*;
public class XmlTest {
    private XmlTestLogList xmlTestLogList;
    private String filename = "XmlTestLogList.xml";
    public XmlTest() {
        load();
        if(xmlTestLogList == null){
            xmlTestLogList = new XmlTestLogList();
        }
        xmlTestLogList.addLog(System.getProperty("user.name"));
        xmlTestLogList.print();
        save();
    }
    private void save() {
        try {
            XMLEncoder o = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(filename)));
            o.writeObject(xmlTestLogList);
            o.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private boolean load() {
        try {
            XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream(filename)));
            xmlTestLogList = (XmlTestLogList) d.readObject();
            d.close();
        } catch (FileNotFoundException ex) {
            return false;
        }
        return true;
    }
    public static void main(String[] args) {
        new XmlTest();
    }
}
```


```
import java.util.Date;
public class XmlTestLog {
    private String name;
    private Date date;
    public Date getDate() {
        return date;
    }
    public void setDate(Date date) {
        this.date = date;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return name + " " + date;
    }
}
```


```
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class XmlTestLogList {
    private List<XmlTestLog> xmlTestLogList;
    public XmlTestLogList() {
        xmlTestLogList = new ArrayList<XmlTestLog>();
    }
    public List<XmlTestLog> getXmlTestLogList() {
        return xmlTestLogList;
    }
    public void setXmlTestLogList(List<XmlTestLog> xmlTestLogList) {
        this.xmlTestLogList = xmlTestLogList;
    }
    public void addLog(String name) {
        Date date = new Date();
        XmlTestLog xmlTestLog = new XmlTestLog();
        xmlTestLog.setDate(date);
        xmlTestLog.setName(name);
        xmlTestLogList.add(xmlTestLog);
    }
    public void print() {
        for (XmlTestLog xmlTestLog : xmlTestLogList) {
            System.out.println(xmlTestLog);
        }
    }
}
```


----------



## Jboss (1. Dez 2008)

vielen Dank !


----------

