Java by API/java.beans/XMLEncoder

Материал из Java эксперт
Перейти к: навигация, поиск

Encoder: setPersistenceDelegate(Class<?> type, PersistenceDelegate persistenceDelegate)

   <source lang="java">
 

import java.beans.DefaultPersistenceDelegate; import java.beans.XMLEncoder; import java.io.BufferedOutputStream; import java.io.FileOutputStream; public class Main {

 public static void main(String[] argv) throws Exception {
   MyClass o = new MyClass(123);
   XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
       new FileOutputStream("outfilename.xml")));
   String[] propertyNames = new String[] { "prop" };
   encoder.setPersistenceDelegate(MyClass.class,
       new DefaultPersistenceDelegate(propertyNames));
   encoder.writeObject(o);
   encoder.close();
 }

} class MyClass {

 int prop;
 public MyClass(int prop) {
   this.prop = prop;
 }
 public int getProp() {
   return prop;
 }

}


 </source>
   
  
 
  



new XMLEncoder(OutputStream out)

   <source lang="java">
 

import java.beans.XMLEncoder; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import javax.swing.JFrame; public class Main {

 public static void main(String args[]) {
   JFrame x = new JFrame("Look at me");
   x.setSize(200, 300);
   x.setVisible(true);
   x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   FileOutputStream f;
   try {
     f = new FileOutputStream("Test.xml");
     XMLEncoder e = new XMLEncoder(new BufferedOutputStream(f));
     e.writeObject(x);
     e.close();
   } catch (Exception e) {
   }
 }

}


 </source>
   
  
 
  



XMLEncoder: writeObject(Object o)

   <source lang="java">
 

import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.beans.XMLEncoder; import java.io.BufferedOutputStream; import java.io.FileOutputStream; public class Main {

 public static void main(String[] argv) throws Exception {
   MyClass o = new MyClass();
   o.setProp(1);
   o.setProps(new int[] { 1, 2, 3 });
   XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
       new FileOutputStream("outfilename.xml")));
   encoder.writeObject(o);
   encoder.close();
 }

} class MyClass {

 int i;
 public int getProp() {
   return i;
 }
 public void setProp(int i) {
   this.i = i;
 }
 int[] iarray = new int[0];
 public int[] getProps() {
   return iarray;
 }
 public void setProps(int[] iarray) {
   this.iarray = iarray;
 }
 static {
   try {
     BeanInfo info = Introspector.getBeanInfo(MyClass.class);
     PropertyDescriptor[] propertyDescriptors = info.getPropertyDescriptors();
     for (int i = 0; i < propertyDescriptors.length; ++i) {
       PropertyDescriptor pd = propertyDescriptors[i];
       if (pd.getName().equals("props")) {
         pd.setValue("transient", Boolean.TRUE);
       }
     }
   } catch (IntrospectionException e) {
   }
 }

}


 </source>