I've created a simple example here on how to use it :
Here's the Person Class that to be serialized:
package org.daz.xml;
public class Person implements java.io.Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String firstName;
private String lastName;
private int age;
// Don't forget the Default Constructor
public Person() {
}
public Person(String fName, String lName, int age) {
this.firstName = fName;
this.lastName = lName;
this.age = age;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
And Here's The Encoder :
package org.daz.xml;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URISyntaxException;
public class XMLEncoderTest<T> {
private static final String FILE_PATH = "org/daz/xml/persons.xml";
public static void main(String[] args) throws Exception{
XMLEncoderTest<Person> personEncoder = new XMLEncoderTest<Person>();
Person person = new Person("Ahmed", "Talat", 23);
personEncoder.encode(person);
Person p = personEncoder.decode(true);
System.out.println("Result : ");
System.out.println(p.getFirstName() + " \t" + p.getLastName() + "\t" + p.getAge());
}
public void encode(T object) throws Exception{
OutputStream stream = new FileOutputStream(new File(XMLEncoderTest.class.getClassLoader().getResource(FILE_PATH).toURI()));
XMLEncoder encoder = new XMLEncoder(stream);
encoder.writeObject(object);
encoder.close();
}
public T decode(boolean showXml) throws IOException{
InputStream inStream = XMLEncoderTest.class.getClassLoader().getResourceAsStream(FILE_PATH);
XMLDecoder decoder = new XMLDecoder(inStream);
T t = (T) decoder.readObject();
decoder.close();
if (showXml) {
printXML();
}
return t;
}
private void printXML()throws IOException{
InputStream inStream = XMLEncoderTest.class.getClassLoader().getResourceAsStream(FILE_PATH);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
byte[] buf = new byte[inStream.available()];
inStream.read(buf);
byteStream.write(buf);
System.out.println("Raw XML : \n" + byteStream.toString());
}
}
Before to run, create an empty xml file besides your Java source files (to be located at org/daz/xml/persons.xml )
1 comment:
Great Job
Regards,
Mishra
http://hardcoreit4all.blogspot.com/
Post a Comment