i have a array list with values. The user will add some values to my ArrayList and i want to serialize it to xml file to response to server to avoid using a database for this little option and of course TO LEARN how to serialize (i'm a begginer) because it seems useful. Anyways the user save something in the arraylist, the program shuts down, the program starts up again and the user is able to see the saved data. How can i implement this? Can you provide some code snippet or a useful link?
Thanks a lot!!
The serialization will happen automatically as long as the class is implementing the serializable interface. You only have to step into the process when say you are using another class that for some reason you cannot change to implement serializable. In that case you actually step into the serialization process and serialize it manually. Also ivars with the transient qualifier will not be serialized.
ReplyDeleteThat being said you will pretty much have to generate the xml file yourself, first agree on an schema and then simply generate a a xml String based on what you need.
Alternatively you can just use a JSONARRAY and make your life easier.
import java.beans.XMLEncoder;
ReplyDeleteimport java.beans.XMLDecoder;
import java.io.*;
public class XMLSerializer {
public static void write(Object f, String filename) throws Exception{
XMLEncoder encoder =
new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(filename)));
encoder.writeObject(f);
encoder.close();
}
public static Object read(String filename) throws Exception {
XMLDecoder decoder =
new XMLDecoder(new BufferedInputStream(
new FileInputStream(filename)));
Object o = (Object)decoder.readObject();
decoder.close();
return o;
}
}
When serialize objects need to remember this: The object must implement the Serializable and have a default constructor (otherwise it can not be deserialize).