Java Beans XMLDecoder decode object from xml

Description

Java Beans XMLDecoder decode object from xml

import java.beans.ExceptionListener;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

public class Main {

   public static void main(String[] args) {

      try {//from w  w  w  . j  a  va2s.  c o m
         Code code = new Code("HTML", "Tag", 6.7);
         FileSystem fileSystem = FileSystems.getDefault();
         FileOutputStream fos = new FileOutputStream("settings.xml");
         XMLEncoder encoder = new XMLEncoder(fos);
         encoder.setExceptionListener(new ExceptionListener() {
            @Override
            public void exceptionThrown(Exception e) {
               System.out.println("Exception! :" + e.toString());
            }
         });
         encoder.writeObject(code);
         encoder.close();
         fos.close();

         FileInputStream fis = new FileInputStream("settings.xml");
         XMLDecoder decoder = new XMLDecoder(fis);
         code = (Code) decoder.readObject();

         decoder.close();
         fis.close();

         Path file = fileSystem.getPath("settings.xml");
         List<String> xmlLines = Files.readAllLines(file, Charset.defaultCharset());

         for (String line : xmlLines) {
            System.out.println(line);
         }

      } catch (Exception e) {
         e.printStackTrace();
      }

   }
}

class Code implements Serializable {
   private String name = "Unknown";
   private String part = "Unknown";
   private double height = Double.NaN;

   public Code(String name, String p, double height) {
      this.name = name;
      this.part = p;
      this.height = height;
   }

   @Override
   public String toString() {
      return "Name: " + this.name + ", Part: " + this.part + ", Height: " + this.height;
   }
}



PreviousNext

Related