序列化和反序列化的示例代码

注: 需要借助第三方kxml2-2.3.0.jar和xmlpull_1_1_3_4c.jar文件

public class Student {
   private String sid;
   private String name;
   private int age;
   private double score;
   public String getSid() {
      return sid;
   }
   public void setSid(String sid) {
      this.sid = sid;
   }
   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 double getScore() {
      return score;
   }
   public void setScore(double score) {
      this.score = score;
   }
   @Override
   public String toString() {
      return "Student [sid=" + sid + ", name=" + name + ", age=" + age + ", score=" + score + "]";
   }
}
import java.io.FileOutputStream;
import org.xmlpull.v1.XmlPullParserFactory;
import org.xmlpull.v1.XmlSerializer;
import com.heima.domain.Student;

/**
 * 写入数据
 * @author super
 *
 */

public class PullDemo4 {
   public static void main(String[] args) throws Exception {
      Student stu = new Student();
      stu.setSid("s003");
      stu.setName("赵六");
      stu.setAge(66);
      stu.setScore(66.6);

      //1.创建解析器工厂
      XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
      //2.获取解析器
      XmlSerializer serializer = factory.newSerializer();
       //3.设置输出流
      serializer.setOutput(new FileOutputStream("s.xml"), "utf-8");
      //4.写入文档声明
      serializer.startDocument("utf-8", true);
      serializer.startTag(null, "students");
      serializer.startTag(null, "student");
      serializer.attribute(null, "sid", stu.getSid());
      serializer.startTag(null, "name");
      serializer.text(stu.getName());
      serializer.endTag(null, "name");
      serializer.startTag(null, "age");
      serializer.text(String.valueOf(stu.getAge()));
      serializer.endTag(null, "age");
      serializer.startTag(null, "score");
      serializer.text(String.valueOf(stu.getScore()));
      serializer.endTag(null, "score");
      serializer.endTag(null, "student");
      serializer.endTag(null, "students");
      //写入结束文档
      serializer.endDocument();
   }

}
时间: 2024-12-29 23:44:50

序列化和反序列化的示例代码的相关文章

对象的序列化和反序列化

一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中: 2) 在网络上传送对象的字节序列. 在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存.比如最常见的是Web服务器中的Session对象,当有 10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些s

c#:浅克隆和深克隆,序列化和反序列化

一.浅克隆和深克隆(浅复制和深复制)浅克隆和深克隆最典型的应用是数据集对象DataSet的Clone和Copy方法.Clone()方法用来复制DataSet的结构,但是不复制DataSet的数据,实现了浅复制.Copy()方法不但复制结构,也复制数据,实现了深复制.另外:我们熟知的Object对象有一个MemberwiseClone()方法,它实现的就是浅表复制.该方法不是虚拟的,所以不能重写它的实现代码.1.浅克隆:被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然

序列化和反序列化的底层实现原理是什么?

前言 序列化和反序列化作为Java里一个较为基础的知识点,大家心里也有那么几句要说的,但我相信很多小伙伴掌握的也就是那么几句而已,如果再深究问一下Java如何实现序列化和反序列化的,就可能不知所措了!遥记当年也被问了这一个问题,自信满满的说了一大堆,什么是序列化.什么是反序列化.什么场景的时候才会用到等,然后面试官说:那你能说一下序列化和反序列化底层是如何实现的吗?一脸懵逼,然后回家等通知!结果自然是凉了~ 一.基本概念 1.什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字

序列化和反序列化[转]

http://tech.meituan.com/serialization_vs_deserialization.html #摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中:另一方面,它们会以其他更容易理解的概念出现,例如加密.持久化.然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式.大数据量系统设计里面更为显著.恰当的序列化协议不仅可以提高系统的通用性.强健性.安全性.优化系统性

java中序列化与反序列化的冷知识

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 关于什么是序列化,和为什么要序列化的知识就不再阐述了,本文主要探讨一些特殊点的情况. 1.java中如何实现序列化和反序列化 下面的代码是进行序列化的简单实例 public static void main(String[] args) { System.out.println("-----------------序列化----------------------↓"); Student stu

序列化和反序列化1

本文来自:http://kb.cnblogs.com/page/515982/ 作者: 刘丁  来源: 美团技术团队  发布时间: 2015-04-23 17:01  阅读: 1541 次  推荐: 3   原文链接   [收藏] 摘要 序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中:另一方面,它们会以其他更容易理解的概念出现,例如加密.持久化.然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,

【转载】序列化和反序列化

#摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中:另一方面,它们会以其他更容易理解的概念出现,例如加密.持久化.然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式.大数据量系统设计里面更为显著.恰当的序列化协议不仅可以提高系统的通用性.强健性.安全性.优化系统性能,而且会让系统更加易于调试.便于扩展.本文从多个角度去分析和讲解"序列化和反序列化",并对比了当前流行的几种序列

序列化和反序列化技术的分析和选择

转自:https://tech.meituan.com/serialization_vs_deserialization.html 美团点评技术团队的文章 #摘要序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中:另一方面,它们会以其他更容易理解的概念出现,例如加密.持久化.然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式.大数据量系统设计里面更为显著.恰当的序列化协议不仅可以提高系统的通

十二、序列化与反序列化(对象流)

一.初步认识 当两个进程远程通信时,彼此可以发送各种类型的数据. 无论是何种类型的数据,都会以二进制序列的形式在网络上传送.比如,我们可以通过http协议发送字符串信息;我们也可以在网络上直接发送Java对象.发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象才能正常读取. 把Java对象转换为字节序列的过程称为对象的序列化.把字节序列恢复为Java对象的过程称为对象的反序列化. 二.对象序列化的作用有如下两种: 1. 持久化: 把对象的字节