2011年7月18日 星期一

Java Bean 的 XML 資訊檔

使用 java.beans 套件中的 XMLEncoder 及 XMLDecoder 這二個類別程式, 轉換 Java 物件資料 (Field) 與 XML 資訊檔

1. 程式撰寫
BeanEncoder.java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class BeanEncoder {

    public static void main(String[] args) {
        Address address = new Address("123 Main Street", "San Jose", "CA", "95000-0000");
        Contact contact = new Contact("Doe", "Joe", address);
      
        try {
            FileOutputStream fos = new java.io.FileOutputStream(args[0]);
            java.beans.XMLEncoder encoder = new java.beans.XMLEncoder(fos);
            encoder.writeObject(contact);
            encoder.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
BeanDecoder.java
public class BeanDecoder {

    public static void main(String[] args) {

        java.io.FileInputStream fis;
        try {
            fis = new java.io.FileInputStream(args[0]);
            java.beans.XMLDecoder decoder = new java.beans.XMLDecoder(fis);
            Contact contact = (Contact) decoder.readObject();
            decoder.close();
            (new XMLWriter()).write(contact, null);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2. 執行程式
> java BeanEncoder d:\temp\abc.xml
執行後會在 d:\temp 目錄產生 abc.xml 資訊檔

> java BeanDecoder d:\temp\abc.xml
<?xml version = "1.0" encoding = "UTF-8"?><contact><name><fname>Doe</fname><lname>Joe</lname></name><address><street>123 Main Street</street><city>San Jose</city><state>CA</state><zip>95000-0000</zip></address></contact>

No Response to "Java Bean 的 XML 資訊檔"

張貼留言