在网上看到一篇有关于对象序列化的代码,自己仿着写了把

在Java中,entity通过implements Serializable,然后使用ObjectInputStream和ObjectOutputStream把象序列化输入输出

package com.formain.lyy.service.util.serializable;

import java.io.Serializable;
import java.util.Date; @SuppressWarnings("serial")
public class PeoperEntity implements Serializable{ private String name; //姓名
private Integer age; //年龄
private String gender; //性别
private Date birthday; //出生年月日 @Override
public String toString() {
return "PeoperEntity [name=" + name + ", age=" + age + ", gender="
+ gender + ", birthday=" + birthday + "]";
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}

public static void main(String[] args) {
String filename = "peoperEntity.ser"; PeoperEntity peoperEntity = new PeoperEntity();
peoperEntity.setAge(50);
peoperEntity.setGender("男");
peoperEntity.setName("张三"); ArrayList<PeoperEntity> arrayList = new ArrayList<PeoperEntity>();
arrayList.add(peoperEntity);
try {
SerializableUtils.serializable(arrayList, filename);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("peoperEntity :\t"+peoperEntity.toString()); ArrayList<PeoperEntity> peNew = null;
try {
peNew = (ArrayList<PeoperEntity>)SerializableUtils.getSerialzable(filename);
} catch (Exception e) {
e.printStackTrace();
} System.out.println(peNew);
}
package com.formain.lyy.service.util.serializable;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; public class SerializableUtils { /**
* 根据文件名序列化对象并返回
* @param filename
* @return Object | null
* @throws Exception
*/
public static Object getSerialzable(String filename)throws Exception{
//创建文件输入流
FileInputStream fileInputStream = new FileInputStream(new File(filename)); //根据文件输入流获取一个对象输入流
ObjectInputStream objInputStream = new ObjectInputStream(fileInputStream);
//获得对象并返回
Object obj = objInputStream.readObject();
return obj;
} /**
* 序列化对象
* @param seriObj
* @param filename
* @return
* @throws Exception
*/
public static void serializable(Object seriObj, String filename)throws Exception{ //创建文件输出流
FileOutputStream fileOutputStream = new FileOutputStream(new File(filename)); //对象输出流对象
ObjectOutputStream objOutputStream = new ObjectOutputStream(fileOutputStream);
//输出
objOutputStream.writeObject(seriObj);
objOutputStream.close(); fileOutputStream.close();
}
}

Java对象序列化输入输出的更多相关文章

  1. Java对象序列化剖析

    对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...

  2. 理解Java对象序列化

    http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...

  3. java 对象序列化与反序列化

    Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化  Java序列化是指把Java对象转换为 ...

  4. java 对象序列化

    java 对象序列化 package org.rui.io.serializable; import java.io.ByteArrayInputStream; import java.io.Byte ...

  5. 理解Java对象序列化(二)

    关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Th ...

  6. 关于 Java 对象序列化您不知道的 5 件事

    数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处. 关于本系列 您觉得自己懂 Java 编程?事实上,大多数 ...

  7. java 对象序列化 RMI

    对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最直接的做法是保存到文件系统或是数 ...

  8. Java对象序列化入门

      Java对象序列化入门 关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制 ...

  9. Java对象序列化与反序列化一 JSON

    Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student {    private String nam ...

随机推荐

  1. 三 MyBatis配置文件SqlMapCofing.xml(属性加载&类型别名配置&映射文件加载)

    SqlMapCofing:dtd,属性加载有固定的顺序Content Model properties:加载属性文件 typeAliases:别名配置 1 定义单个别名:不区分大小写 核心配置: 映射 ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:显示关闭按钮

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 二十三、java连接oracle数据库操作:jdbc

    1.jdbc 1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程时java程序会去连接不同的数据库,而每个数据库的底层的实 ...

  4. 使用U盘安装Linux最美桌面发行版Elementary OS 及常用开发环境配置(JDK,Redis,MySQL,Docker,IDEA,STS)

    前言 假期在家无聊,刚好把六年前的一台笔记本电脑利用起来,原来电脑虽然说配置说不上古董机器,但是运行win系统感觉还是不流畅,所幸给换成Linux桌面版系统,在网上查阅了很多,Linux桌面系统要么推 ...

  5. sdfsdsf

    1 $('.advert-title').each(function(){ 2 var TXTlength = $(this).text().length; // 当前文本的长度 3 if(TXTle ...

  6. bootloader 详细介绍

    Bootloader 对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程.嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader. 6.1.1  Bootloader ...

  7. 7专题总结-高频题high frequency

    Outline . Single Number I, II, III . Majority Number I, II, III . Best Time to Buy and Sale Stock I, ...

  8. leetcode814 Binary Tree Pruning

    """ We are given the head node root of a binary tree, where additionally every node's ...

  9. Rolling Update【转】

    滚动更新是一次只更新一小部分副本,成功后,再更新更多的副本,最终完成所有副本的更新.滚动更新的最大的好处是零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 下面我们部署三副本应用,初始镜 ...

  10. 说说mysql和oracle他门的分页查询,分别是怎么实现的?

    MySQL: 1.MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了. 2.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两 ...