精华内容
下载资源
问答
  • 主要介绍了Java对象的XML序列化与反序列化实例解析,小编觉得还是挺不错的,这里分享给大家。
  • System.out.println("序列化XML文件成功"); } catch (Exception e) { e.printStackTrace(); } finally { if (fileOut != null) fileOut.close(); } } public static void initData() { for ...

    需要加载三个jar包。xstream-1.4.3.jar,xmlpull-1.1.3.1.jar,kxml2-2.3.0.jar。

    Step1:创建一个实现了Serializable接口的类

    import java.io.Serializable;
    
    public class Person implements Serializable {
    	private static final long serialVersionUID = 172447632608611914L;
    	private String name;
    	private int age;
    
    	public Person() {
    
    	}
    
    	public Person(String name, int age) {
    		System.out.println("Inside Person's Constructor");
    		this.name = name;
    		this.age = age;
    	}
    
    	String getName() {
    		return name;
    	}
    
    	int getAge() {
    		return age;
    	}
    
    	@Override
    	public String toString() {
    		return "Person [name=" + name + ", age=" + age + "]";
    	}
    
    }
    

    Step2:通过xstream.toXML方法写入xml文件

    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.thoughtworks.xstream.XStream;
    
    public class WritePersonToXML {
    	private static List<Person> persons = new ArrayList<Person>();
    
    	public static void main(String[] args) throws IOException {
    		initData();
    		String path = "xml/myPerson.xml";
    		FileOutputStream fileOut = null;
    		XStream out = null;
    		try {
    			fileOut = new FileOutputStream(path);
    			out = new XStream();
    			out.toXML(persons, fileOut);
    			System.out.println("序列化XML文件成功");
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			if (fileOut != null)
    				fileOut.close();
    		}
    	}
    
    	public static void initData() {
    		for (int i = 1; i <= 3; i++) {
    			Person person = new Person("学生" + i, 18 + i);
    			persons.add(person);
    		}
    	}
    
    }

    Step3:通过xstream.fromXML读入xml文件并反序列化为对象

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    
    import com.thoughtworks.xstream.XStream;
    
    public class ReadPersonFromXml {
    
    	@SuppressWarnings("unchecked")
    	public static void main(String[] args) {
    		String path = "xml/myPerson.xml";
    		FileInputStream fileIn = null;
    		try {
    			fileIn = new FileInputStream(path);
    			XStream in = new XStream();
    			ArrayList<Person> persons = (ArrayList<Person>) in.fromXML(fileIn);
    			// ArrayList<Person> persons = (ArrayList<Person>) new
    			// XStream().fromXML("xml/myPerson.xml");
    			if (persons != null) {
    				for (Person p : persons) {
    					System.out.println(p);
    				}
    			} else {
    				System.out.println("反序列化XML文件失败");
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (fileIn != null)
    					fileIn.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    
    	}
    
    }
    

    展开全文
  • 其实XStream和JAXB在一些观念上是很相似的,但是JAXB作为Java EE的一个规范,是非常正式的,且和其他很多规范有联系 是一种标准的实现。 区别: jaxb2如果没有加@XmlElement等注释,是不会写入到xml中的,但是...

    其实XStream和JAXB在一些观念上是很相似的,但是JAXB作为Java EE的一个规范,是非常正式的,且和其他很多规范有联系 是一种标准的实现。

    区别:

    jaxb2如果没有加@XmlElement等注释,是不会写入到xml中的,但是XStream不会

    XStream没有加上注释,默认以属性名称写入子级的元素中

    XStream还可以将bean转为json,功能比较强悍,个人建议使用XStream

     

    一、JAXB

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

    JDK中JAXB相关的重要Class和Interface:

    JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 
    Marshaller接口,将Java对象序列化为XML数据。 
    Unmarshaller接口,将XML数据反序列化为Java对象。 
    JDK中JAXB相关的重要Annotation:(来源于百度百科JAXB)

    @XmlType,将Java类或枚举类型映射到XML模式类型 
    @XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。 
    @XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。 
    @XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。 
    @XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。 
    @XmlRootElement,将Java类或枚举类型映射到XML元素。 
    @XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。 
    @XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。
    
    在以上的注解中,用的最多的是@XMLType,@XmlAccessorType,@XmlRootElement。

    实现步骤:

    1.一个实体类,使用@XmlRootElement表示一下类(最简单的)

    2.建立一个ObjectFactory用来产生这个实体类

    3.使用JAXBContext 然后产生Marshaller(对象-->xml)或者UnMarshaller(xml-->对象)

    示例代码:

    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Calendar;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.bind.Unmarshaller;
    import javax.xml.bind.annotation.XmlAttribute;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
    
    public class JAXB2Tester { 
    
        public static void main(String[] args) throws JAXBException,IOException { 
            JAXBContext context = JAXBContext.newInstance(Person.class); 
            //下面代码演示将对象转变为xml 
            Marshaller m = context.createMarshaller(); 
            Address address = new Address(&quot;China&quot;,&quot;Beijing&quot;,&quot;Beijing&quot;,&quot;ShangDi West&quot;,&quot;100080&quot;); 
            Person p = new Person(Calendar.getInstance(),&quot;JAXB2&quot;,address,Gender.MALE,&quot;SW&quot;); 
            FileWriter fw = new FileWriter(&quot;person.xml&quot;); 
            m.marshal(p,fw); 
    
            //下面代码演示将上面生成的xml转换为对象 
            FileReader fr = new FileReader(&quot;person.xml&quot;); 
            Unmarshaller um = context.createUnmarshaller(); 
            Person p2 = (Person)um.unmarshal(fr); 
            System.out.println(&quot;Country:&quot;+p2.getAddress().getCountry());
        } 
    }  
    
    @XmlRootElement//表示person是一个根元素 
    class Person {    
        @XmlElement 
        Calendar birthDay; //birthday将作为person的子元素 
    
        @XmlAttribute 
        String name; //name将作为person的的一个属性 
    
        public Address getAddress() { 
            return address; 
        } 
    
        @XmlElement 
        Address address; //address将作为person的子元素 
    
        @XmlElement 
        Gender gender; //gender将作为person的子元素 
    
        @XmlElement 
        String job; //job将作为person的子元素 
    
        public Person(){ 
    
        } 
    
     
    
        public Person(Calendar birthDay, String name, Address address, Gender gender, String job) { 
            this.birthDay = birthDay; 
            this.name = name; 
            this.address = address; 
            this.gender = gender; 
            this.job = job; 
        } 
    } 
    
    enum Gender{ 
        MALE(true), 
        FEMALE (false); 
        private boolean value; 
        Gender(boolean _value){ 
            value = _value; 
        } 
    } 
    
    class Address { 
        @XmlAttribute 
        String country; 
    
        @XmlElement 
        String state; 
    
        @XmlElement 
        String city; 
    
        @XmlElement 
        String street; 
    
        String zipcode; //由于没有添加@XmlElement,所以该元素不会出现在输出的xml中 
        public Address() { 
    
        } 
    
        public Address(String country, String state, String city, String street, String zipcode) { 
    
            this.country = country; 
            this.state = state; 
            this.city = city; 
            this.street = street; 
            this.zipcode = zipcode; 
        } 
    
     
    
        public String getCountry() { 
            return country; 
        } 
    } 

    运行该程序,我们会得到一个person.xml的文件,如下: 

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
    <person name="JAXB2"> 
          <birthDay>2006-12-28T08:49:27.203+00:00</birthDay> 
           <address country="China"> 
                <state>Beijing</state> 
                <city>Beijing</city> 
                <street>ShangDi West</street> 
           </address> 
           <gender>MALE</gender> 
           <job>SW</job> 
    </person> 

    控制台会输出 

    Country:China 

     

     

    二、XStream

    1.首先从XStream官网下载XStream

    http://xstream.codehaus.org/download.html

    2.下载后解压 将lib下的jar添加入项目就可以了

    如下:

     

    然后就可以编写代码了,为了方便直接使用XStream的annotation:

    3.实体类 Person:

    package org.cc.vo;  
      
    import java.util.List;  
      
    import com.thoughtworks.xstream.annotations.XStreamAlias;  
    import com.thoughtworks.xstream.annotations.XStreamAsAttribute;  
    import com.thoughtworks.xstream.annotations.XStreamImplicit;  
    import com.thoughtworks.xstream.annotations.XStreamOmitField;  
      
    @XStreamAlias("Person")  
    public class Person {  
      
        @XStreamAlias("name")  
        @XStreamAsAttribute  
        private String name;  
          
        @XStreamAlias("age")  
        private int age;  
          
        @XStreamAlias("sex")  
        private boolean sex;  
          
        @XStreamImplicit(itemFieldName="favor")  
        private List<String> favor;  
      
        @XStreamOmitField  
        private int tempid;  
          
        public String getName() {  
            return name;  
        }  
      
        public void setName(String name) {  
            this.name = name;  
        }  
      
        public int getAge() {  
            return age;  
        }  
      
        public void setAge(int age) {  
            this.age = age;  
        }  
      
        public boolean isSex() {  
            return sex;  
        }  
      
        public void setSex(boolean sex) {  
            this.sex = sex;  
        }  
      
        public List<String> getFavor() {  
            return favor;  
        }  
      
        public void setFavor(List<String> favor) {  
            this.favor = favor;  
        }  
      
        public int getTempid() {  
            return tempid;  
        }  
      
        public void setTempid(int tempid) {  
            this.tempid = tempid;  
        }  
      
        @Override  
        public String toString() {  
            return "Person [name=" + name + ", age=" + age + ", sex=" + sex  
                    + ", favor=" + favor + ", tempid=" + tempid + "]";  
        }  
      
      
      
    }  

     

     @XStreamAlias(value)是别名 可以用在类名和属性名上修改显示的xml中的标签

     @XStreamAsAttribute 把属性作为xml中的属性 而不是子元素

     @XStreamImplicit(itemFieldName="favor") 还有一个keyFieldName的属性 这个是用来改写List和Map的显示 的

     @XStreamOmitField 此标记的属性不会序列化

     

    4.接下去只有一步,没有JAXB的建立ObjectFactory那一部,实现起来非常简洁直观:

    package org.cc.vo;  
      
    import java.util.ArrayList;  
    import java.util.List;  
      
    import com.thoughtworks.xstream.XStream;  
    import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;  
      
    public class Main {  
      
        public static void main(String[] args) {  
             XStream x=new XStream();  
    //       XStream x = new XStream(new JettisonMappedXmlDriver());  
             x.processAnnotations(Person.class);  
             Person p=new Person();  
             p.setAge(30);  
             List<String> fa=new ArrayList<String>();  
             fa.add("游戏");  
             fa.add("上网");  
             p.setFavor(fa);  
             p.setName("cc");  
             String info=x.toXML(p);  
             System.out.println(info);  
               
             Person p2=(Person)x.fromXML(info);  
             System.out.println(p2);  
        }  
      
    }  

     输出:

    Xml代码 

    <Person name="cc">  
      <age>30</age>  
      <sex>false</sex>  
      <favor>游戏</favor>  
      <favor>上网</favor>  
    </Person>  
    Person [name=cc, age=30, sex=false, favor=[游戏, 上网], tempid=0]  

    注意了以上代码注释掉的那块打开 并把没有参数的构造方法的XStream那一段注释掉产生的就是JSON(换了一个引擎)

    产生内容如下:

    {"Person":{"@name":"cc","age":30,"sex":false,"favor":["游戏","上网"]}}  
    Person [name=cc, age=30, sex=false, favor=[游戏, 上网], tempid=0] 

     

    展开全文
  •  下载.exe编译器——编写.proto文件——利用编译器编译.proto文件生成javabean——引用jar包——直接使用javabean自带的序列化、反序列化方法   1、下载针对java的.exe编译器 protobuf编译器官方下载地址:...

    4、protobuf简单教程

    4.1、快速入门:

      下载.exe编译器——编写.proto文件——利用编译器编译.proto文件生成javabean——引用jar包——直接使用javabean自带的序列化、反序列化方法

     

    1、下载针对java的.exe编译器

    protobuf编译器官方下载地址:https://developers.google.com/protocol-buffers/docs/downloads

    下载不了的:点我

     

    2、编写.proto文件

    package tutorial;
    option java_package = "com.zjm.www.po";
    option java_outer_classname = "Products2"; 
    message Products22 { 
      required string s1 = 1;
      required string s2 = 2;
      required string s3 = 3;
      required string s4 = 4;
      required string s5 = 5;
      required string s6 = 6;
      required string s7 = 7;
      required string s8 = 8;
      required string s9 = 9;
      required int32 i10 = 10;
      required int32 i11 = 11;
      required int32 i12 = 12;
      required int32 i13 = 13;
      required int32 i14 = 14;
      required int32 i15 = 15;
      required int32 i16 = 16;
      required int32 i17 = 17;
      required int32 i18 = 18;
      required bool b19 = 19;
      required bool b20 = 20;
      required bool b21 = 21;
      required bool b22 = 22;
      required bool b23 = 23;
      required bool b24 = 24;
      required bool b25 = 25;
      required bool b26 = 26;
      required bool b27 = 27;
      repeated string list = 28;
    }

    View Code

    其中的option java_package代表将要生成的javabean所有的包的包名

    其中的option java_outer_classname代表要生成的javabean的类名

    其中的message Products22可以理解为一个类似C语言的结构体,在生成的javabean中将变成一个内部类,一个.proto文件可以有无数个message 

    proto支持的类型与修饰符可参考该博客:http://blog.sina.com.cn/s/blog_abea023b0101dxce.html

     

    3、利用编译器编译.proto文件生成javabean

    把.proto文件放在.exe同个目录下面,打开cmd,进入同目录下,执行命令:

    protoc.exe --java_out=./ test.proto

    假如.proto文件没有编写错误的话,成功后在同目录下即有javabean的类生成。

     

    4、引用jar包

    jar包地址pom.xml:

            <!-- protobuf -->
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>3.0.0-alpha-2</version>
            </dependency>

     

    5、把刚刚生成的javabean复制到项目中,这里直接使用javabean自带的序列化、反序列化方法

    刚刚生成的javabean为:Products2

    序列化例子:

    public List<byte[]> serializeProtoBufProductsList(
                List<Builder> builderList) {
            if(builderList == null) {
                System.out.println("【ProtoBufSerializeServiceImpl-serializeProtoBufProductsService】builderList==null");
            }
            long start = System.currentTimeMillis();
            List<byte[]> bytesList = new ArrayList<byte[]>();
            for(Products2.Products22.Builder p22Builder : builderList){
                Products2.Products22 p22 = p22Builder.build();
                byte[] bytes = p22.toByteArray();
                bytesList.add(bytes);
            }
            long end = System.currentTimeMillis();
            usedTime = end - start ;
            return bytesList;
        }

    builder对象由来:com.zjm.www.po.Products2.Products22.Builder,即可有生成的javabean点出来。

    反序列化例子:

        public List<Products22> deserializeProtoBufDataListToProducts22List(
                List<byte[]> bytesList) {
            long start = System.currentTimeMillis();
            List<Products22> list = new ArrayList<Products22>();
            for(byte[] b : bytesList) {
                try {
                    list.add(Products2.Products22.parseFrom(b));
                } catch (InvalidProtocolBufferException e) {
                    e.printStackTrace();
                }
            }
            long end = System.currentTimeMillis();
            usedTime = end - start;
            return list;
        }

    拿出具体字段例子:

                    Products22 p = Products2.Products22.parseFrom(b);
                    String s1 = p.getS1();
                    int i1 = p.getI10();
                    boolean b1 = p.getB19();
                    ProtocolStringList l = p.getListList();
                    
                    for(String s : l) {
                        
                    }

     

    5、protostuff简单教程

     5.1 快速入门

      引用jar包——学习语法——直接使用

     

    1、引用jar包:

    pom.xml:

            <!-- protostuff -->
            <dependency>
                <groupId>com.dyuproject.protostuff</groupId>
                <artifactId>protostuff-core</artifactId>
                <version>1.0.7</version>
                <optional>true</optional>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.dyuproject.protostuff</groupId>
                <artifactId>protostuff-runtime</artifactId>
                <version>1.0.7</version>
                <optional>true</optional>
                <scope>provided</scope>
            </dependency>

     

    2、javabean:

    同上面xml的javabean

     

    3、序列化例子:

    public List<byte[]> serializeProtoStuffProductsList(List<Products> pList) {
            if(pList == null  ||  pList.size() <= 0) {
                return null;
            }
            long start = System.currentTimeMillis() ;
            List<byte[]> bytes = new ArrayList<byte[]>();
            Schema<Products> schema = RuntimeSchema.getSchema(Products.class);
            LinkedBuffer buffer = LinkedBuffer.allocate(4096);
            byte[] protostuff = null;
            for(Products p : pList) {
                try {
                    protostuff = ProtostuffIOUtil.toByteArray(p, schema, buffer);
                    bytes.add(protostuff);
                } finally {
                    buffer.clear();
                }
            }
            long end = System.currentTimeMillis() ;
            this.userTime = end - start;
            return bytes;
        }

    4、反序列化例子:

        public List<Products> deserializeProtoStuffDataListToProductsList(
                List<byte[]> bytesList) {
            if(bytesList == null || bytesList.size() <= 0) {
                return null;
            }
            long start = System.currentTimeMillis() ;
            Schema<Products> schema = RuntimeSchema.getSchema(Products.class);
            List<Products> list = new ArrayList<Products>();
            for(byte[] bs : bytesList) {
                Products product = new Products();
                ProtostuffIOUtil.mergeFrom(bs, product, schema);
                list.add(product);
            }
            long end = System.currentTimeMillis() ;
            this.userTime = end - start;
            return list;
        }

     

    展开全文
  •  serialValue = xstream.toXML(new Student("</name><wang>yuan</wang>", 20));  System.out.println(serialValue);  Student student3 = (Student)xstream.fromXML(serialValue);  System.out.println...

    1. 依赖库

     

    xstream-1.3.1.jar

    xpp3_min-1.1.4c.jar

     

    2. 代码

     

    public class Student {
        private String name;
        private int age;
       
        public Student(){
           
        }
        public Student(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    }

    public class Grade {
       
        public String name = "wang";
        public int f1 = 100;

    }

    public enum Color {
        RED, GREEN, BLUE
    }



    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;

    import com.thoughtworks.xstream.XStream;

    public class XmlTest {

        public static void main(String[] args) {
            XStream xstream = new XStream();

            String serialValue = xstream.toXML(new Student("wang", 20));
            System.out.println(serialValue);
            Student student = (Student)xstream.fromXML(serialValue);
            System.out.println(student.getName());
           
            //数组
            String[] arr1 = {"111", "222"};
            serialValue = xstream.toXML(arr1);
            System.out.println(serialValue);
            String[] arr2 = (String[])xstream.fromXML(serialValue);
            System.out.println(arr2[0]);
           
            //集合
            List<Student> list1 = new ArrayList<Student>();
            list1.add(new Student("wang", 20));
            list1.add(new Student("zhang", 21));
            serialValue = xstream.toXML(list1);
            System.out.println(serialValue);
            List<Student> list2 = (List<Student>)xstream.fromXML(serialValue);
            System.out.println(list2.get(0).getName());
           
            //MAP
            Map<Integer, String> map1 = new HashMap<Integer, String>();
            map1.put(1, "11");
            map1.put(2, "22");
            serialValue = xstream.toXML(map1);
            System.out.println(serialValue);
            Map<Integer, String> map2 = (Map<Integer, String>)xstream.fromXML(serialValue);
            System.out.println(map2.get(1));
           
            //枚举
            Color color = Color.RED;
            serialValue = xstream.toXML(color);
            System.out.println(serialValue);
            Color color2 = (Color)xstream.fromXML(serialValue);
            System.out.println(color2);
           
            //注入测试
            serialValue = xstream.toXML(new Student("</name><wang>yuan</wang>", 20));
            System.out.println(serialValue);
            Student student3 = (Student)xstream.fromXML(serialValue);
            System.out.println(student3.getName());
           
            serialValue = xstream.toXML(new Grade());
            System.out.println(serialValue);
            Grade g = (Grade)xstream.fromXML(serialValue);
            System.out.println(g.name);
        }

    }

    展开全文
  • Java基础18:Java序列化与反序列化 序列化与反序列化概念 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等。在网络传输...
  • java序列化与反序列化

    2019-02-18 18:03:52
    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。...Java对象的序列化与反序列化 在Java中,我们可以通过多种方式来创建对象,并且只要对象没有被回收...
  • Java序列化与反序列化

    2019-08-02 08:19:13
    与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。昨天在一本书上看到了,好好实践了一下,序列化为一般文件,也序列化为XML文件(使用XStream)。用于序列化的实体类...
  • 大家一起讨论Java对象序列化与xml方法, 我试了一下XMLBeans与Castor 感觉都不好,不能很好且简单的实现Java 对象中对象的翻译成xml. 不知大家有什么好的方法。...
  • Java序列化与反序列化(实践) 基本概念:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。昨天在一本书上看到...
  • JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式) http://www.2cto.com/kf/201208/148029.html 什么是序列化 java中的序列化(serialization)机制能够将一个实例对象的状态信息写入到一个...
  • * 序列化XML * @param object * @return * @throws JAXBException * @throws UnsupportedEncodingException */ public static String Marshal(Object object) throws JAXBException, ...
  • http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php#starthttp://blog.csdn.net/taozi165/article/details/6682503 ...import java.io.File; import org.simpleframework.xml.Serializer;...
  • java序列化xml 方法

    千次阅读 2007-11-16 13:46:00
    今天看了下JAVA序列化。还是一知半解。怎么也没有弄明白,怎么序列化成XML文件。处入半解状态。在网上找了很多,大部分是理论上的。没有实际的例子。功夫不负有心人,终于找到了。做了下测试终于成功。忍不住记录的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 729
精华内容 291
关键字:

java序列化与xml

java 订阅