Hi,
ich habe eine Config-Klasse wo verschiedene Daten z.B. mysql-Datenbank usw. gespeichert sind.
Die Klasse besitzt eine Methode (save) welche sich selbst in eine Datei serialisiert.
Das funktioniert auch gut. Jedoch funktioniert das Laden (deserialisieren) nicht so wie ich möchte.
Ich habe dazu eine weitere Methode (load) geschrieben. Dort lese ich das Object ein und speicher es in einem objekt welches auf "this" verweist. Jedoch klappt es nur so halb.
Hier meine Config.java:
Ganz unten sind die Methoden zum (de)serialisieren.
Beim beim laden gibt er mir "nichts" aus.
Wenn ich die load-Methode so verändere gibt er mir das richtige aus:
Ist da irgendwo ein (Denk)-Fehler von mir drin. Oder geht es einfach nicht?
ich habe eine Config-Klasse wo verschiedene Daten z.B. mysql-Datenbank usw. gespeichert sind.
Die Klasse besitzt eine Methode (save) welche sich selbst in eine Datei serialisiert.
Das funktioniert auch gut. Jedoch funktioniert das Laden (deserialisieren) nicht so wie ich möchte.
Ich habe dazu eine weitere Methode (load) geschrieben. Dort lese ich das Object ein und speicher es in einem objekt welches auf "this" verweist. Jedoch klappt es nur so halb.
Hier meine Config.java:
Ganz unten sind die Methoden zum (de)serialisieren.
Beim beim laden gibt er mir "nichts" aus.
Java:
package util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Config implements Serializable {
private static final long serialVersionUID = 1L;
public String mysqlHost = "";
public String mysqlUser = "";
public String mysqlPassword = "";
public String mysqlDatabase = "";
public String ftpHost = "";
public String ftpUser = "";
public String ftpPassword = "";
public static final String configFilename = System.getProperty("user.home")+"/config.conf";
public String getMysqlHost() {
return mysqlHost;
}
public void setMysqlHost(String mysqlHost) {
this.mysqlHost = mysqlHost;
}
public String getMysqlUser() {
return mysqlUser;
}
public void setMysqlUser(String mysqlUser) {
this.mysqlUser = mysqlUser;
}
public String getMysqlPassword() {
return mysqlPassword;
}
public void setMysqlPassword(String mysqlPassword) {
this.mysqlPassword = mysqlPassword;
}
public String getMysqlDatabase() {
return mysqlDatabase;
}
public void setMysqlDatabase(String mysqlDatabase) {
this.mysqlDatabase = mysqlDatabase;
}
public String getFtpHost() {
return ftpHost;
}
public void setFtpHost(String ftpHost) {
this.ftpHost = ftpHost;
}
public String getFtpUser() {
return ftpUser;
}
public void setFtpUser(String ftpUser) {
this.ftpUser = ftpUser;
}
public String getFtpPassword() {
return ftpPassword;
}
public void setFtpPassword(String ftpPassword) {
this.ftpPassword = ftpPassword;
}
/**
* Speichert die Konfiguration in einer Datei
*/
public void save() {
ObjectOutputStream oos;
try {
oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(configFilename)));
oos.writeObject(this);
oos.flush();
oos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void load() {
Config conf = this;
ObjectInputStream objIn;
try {
objIn = new ObjectInputStream(new BufferedInputStream(new FileInputStream(configFilename)));
conf = (Config) objIn.readObject( );
objIn.close();
System.out.println("mysqlHost:"+getMysqlHost());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Wenn ich die load-Methode so verändere gibt er mir das richtige aus:
Java:
public void load() {
Config conf = this;
ObjectInputStream objIn;
try {
objIn = new ObjectInputStream(new BufferedInputStream(new FileInputStream(configFilename)));
conf = (Config) objIn.readObject( );
objIn.close();
this.setMysqlHost(conf.getMysqlHost());
System.out.println("mysqlHost:"+getMysqlHost());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}