`
lvhuiqing
  • 浏览: 258109 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Java序列化之六: 附录2自定义的序列化过程

 
阅读更多
import java.io.Serializable;

public class Person implements Serializable {

 private static final long serialVersionUID = 2356129180978015792L;
 private String name;
 private int age;

 public Person() {

 }

 public Person(String str, int n) {
  System.out.println("Inside Person's Constructor");
  name = str;
  age = n;
 }

 String getName() {
  return name;
 }

 int getAge() {
  return age;
 }
}


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

import com.thoughtworks.xstream.*;

public class Serialize {
    public static void main(String[] args) {
        Serialize ser = new Serialize();
        ser.serializeToXml();
        ser.deSerializeFromXml();
    }
    
public void serializeToXml(){
        Person[] myPerson = new Person[2];
        myPerson[0] = new Person("Jay",24);
        myPerson[1] = new Person("Tom",23);
        
        XStream xstream = new XStream();  
        try {
            FileOutputStream fos = new FileOutputStream("E:\\workspace\\2010_03\\src\\myPerson.xml");
             xstream.toXML(myPerson,fos);
             } catch (FileNotFoundException ex) {
             ex.printStackTrace();
             }       
        System.out.println(xstream.toXML(myPerson));
    }
    public void deSerializeFromXml(){
         XStream xs = new XStream();
         Person[] myPerson = null;

         try {
         FileInputStream fis = new FileInputStream("E:\\workspace\\2010_03\\src\\myPerson.xml");
         myPerson=(Person[])xs.fromXML(fis);
         if (myPerson != null)
         {
             int len = myPerson.length;
             for (int i=0;i<len;i++)
             {
                 System.out.println(myPerson[i].getName());
                 System.out.println(myPerson[i].getAge()); 
             }

         }
         } catch (FileNotFoundException ex) {
         ex.printStackTrace();
         }
    }
}

分享到:
评论

相关推荐

    Java 序列化的秘密(高清PDF中文版)

    ### Java序列化的秘密 #### 为什么需要序列化 在探讨序列化之前,我们需要理解序列化产生的背景及其必要性。简而言之,Java程序本质上是由进程和内存构成的系统,在这个系统中,进程根据定义好的类生成一系列实例...

    附录Java

    6. **输入/输出(IO)流**:了解字节流和字符流,以及缓冲区、对象序列化和文件操作。 7. **Java虚拟机(JVM)**:JVM的工作原理,包括类加载、垃圾回收(GC)和内存模型。 8. **标准库和API**:如Java.util和java...

    Java开发详解.zip

    031217_【第12章:JAVA IO】_对象序列化笔记.pdf 031218_〖第12章:JAVA IO〗_实例操作—单人信息管理程序笔记.pdf 031219_〖第12章:JAVA IO〗_实例操作:投票程序笔记.pdf 031301_【第13章:Java类集】_认识类集、...

    MyEclipse 基于X-File 的Web service及调用实例详解

    2. **序列化与反序列化**:为了让自定义对象能够在XML格式下传输,需要实现序列化与反序列化的过程。可以通过实现`Serializable`接口或使用特定的X-File注解来完成。 3. **在服务端处理自定义对象**:在服务端,可以...

    《数据结构(Java版)(第3版)》附录G-.doc

    附录G通过图形化的方式帮助读者理解这些数据结构的抽象层次和实现细节,这对于学习和应用Java数据结构非常有帮助。理解这些接口和类的关系有助于编写更高效、更灵活的代码,同时也能更好地适应各种算法和问题的解决...

    java 快速查询手册(pdf)

    2. **IO流**:文件操作、字符流、字节流、缓冲流和对象序列化。 3. **多线程**:线程的创建、同步、通信以及线程池的使用。 4. **网络编程**:Socket、ServerSocket,以及URL和URLConnection类的应用。 5. **日期与...

    Thinking in Java 中文第四版+习题答案

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况:...

    java 编程入门思考

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    java联想(中文)

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    Java初学者入门教学

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    JAVA_Thinking in Java

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    Thinking in Java简体中文(全)

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    axis1.2 开发指南

    - **当 Beans 不够时 - 自定义序列化**:如果默认的序列化机制不能满足需求,可以使用自定义序列化来实现更复杂的需求。 #### 八、使用 WSDL 与 Axis - **获取 WSDL**:介绍了如何为已发布的服务获取 WSDL 文件,...

    java编程基础,应用与实例

    13.6 对象序列化(object serialization) 199 13.6.1 ObjectInput与ObjectOutput 199 13.6.2 ObjectOutputStream 200 13.6.3 ObjectInputStream 200 13.7 巩固练习 201 第14章 线程 203 14.1 Runtime类...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况...

    Think in Java(中文版)chm格式

    1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2...

    Spring-data-redis使用指南

    - **1.5 版本**: 优化了序列化方式,支持自定义序列化策略。 #### 四、环境需求 - **Java 版本**: 最低要求 Java 7,推荐使用 Java 8 或更高版本。 - **Redis 版本**: 至少需要 Redis 2.8 版本,建议使用最新稳定...

    head.first.java 中文版15-18章.rar 包可以看

    此外,还会涉及对象序列化,这是将Java对象转换为字节流以便存储或传输的技术。 附录:通常附录会包含一些补充材料,可能是词汇表、索引或者其他实用资源,帮助读者更深入地理解和应用所学知识。 这四个章节的学习...

Global site tag (gtag.js) - Google Analytics