XStream
にオブジェクトを書き込むために使用しますxml file
。
次に、ファイルを再度デシリアライズして、オブジェクトを使用します。
私の問題は、プログラムを閉じた後、xml「ファイル」がなくなっていることです。では、この xml ファイルを特定のディレクトリに保存するにはどうすればよいでしょうか? 私はすでに試しFileOutputStream
ましたが、うまくいきません...私もグーグルで調べましたが、私にとって正しい解決策が見つかりませんでした...
メソッドsavePerson
public void savePerson(String uNummer, Person person) {
System.out.println("save person");
try{
xml = xstream.toXML(person);
}catch (Exception e){
System.err.println("Error in XML Write: " + e.getMessage());
}
}
そしてメソッドreadPerson
public Person readPerson(String uNummer) {
System.out.println("read person");
Person person = new Person();
try{
person = (Person) xstream.fromXML(file_path + uNummer + ".xml");
}catch(Exception e){
System.err.println("Error in XML Read: " + e.getMessage());
}
return person;
}
ディレクトリ:\\releasearea\ToolReleaseArea\PersistenceSave
EDIT
正しいコード:(ppeterkaによる)
public void savePerson(String uNummer, Person person) {
System.out.println("save person XML");
FileOutputStream fos = null;
try{
xml = xstream.toXML(person);
fos = new FileOutputStream(file_path + uNummer + ".xml");
fos.write("<?xml version=\"1.0\"?>".getBytes("UTF-8"));
byte[] bytes = xml.getBytes("UTF-8");
fos.write(bytes);
}catch (Exception e){
System.err.println("Error in XML Write: " + e.getMessage());
}
finally{
if(fos != null){
try{
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}