beans

Bean XML serialization

This is an example of how to serialize a java Bean using the XMLEncoder. The XMLEncoder class is a complementary alternative to the ObjectOutputStream and can used to generate a textual representation of a JavaBean in the same way that the ObjectOutputStream can be used to create binary representation of Serializable objects. Serializing a java Bean using the XMLEncoder implies that you should:

  • Create a simple class, like Bean class in the example. It has two String properties and getters and setters for the properties.
  • Create a FileOutputStream stream, initialized with a String name of the target xml file.
  • Create a new XMLEncoder, with a new BufferedOutputStream to write data to the FileOutputStream.
  • Use writeObject(Object o) API method of XMLEncoder to write an XML representation of the specified object to the output.
  • Use close() API method to close the output stream associated with this stream.

Let’s take a look at the code snippet that follows:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.javacodegeeks.snippets.core;
 
import java.beans.XMLEncoder;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
 
public class BeanXMLSerialization {
     
    public static void main(String[] args) throws Exception {
         
        Bean bean = new Bean();
        bean.setProperty1("value1");
        bean.setProperty2(2);
 
        // Serialize object into XML
        XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("out.xml")));
        encoder.writeObject(bean);
        encoder.close();
         
    }
     
    public static class Bean {
         
        // Property property1
        private String property1;
        // Property property2
        private int property2;
         
        public String getProperty1() {
            return property1;
        }
        public void setProperty1(String property1) {
            this.property1 = property1;
        }
         
        public int getProperty2() {
            return property2;
        }
        public void setProperty2(int property2) {
            this.property2 = property2;
        }
         
    }
 
}

Output:

01
02
03
04
05
06
07
08
09
10
11
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_05" class="java.beans.XMLDecoder">
 <object class="com.javacodegeeks.snippets.core.BeanXMLSerialization$Bean">
  <void property="property1">
   <string>value1</string>
  </void>
  <void property="property2">
   <int>2</int>
  </void>
 </object>
</java>

 
This was an example of how to serialize a java Bean using the XMLEncoder in Java.

Ilias Tsagklis

Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest


This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to top button