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

在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. 解决Python2中文ascii编码的方法

    在YiiChina签到的时候,经常会看到有人在说说里面发群主是最帅的,yii 是 PHP 最好的框架,没有之一,就想到使用一言,在每天签到的时候也发一句话 同时使用方糖将内容推送到微信,防止有什么不对 ...

  2. C#中struct和class的区别详解 (转载)

    本文详细分析了C#中struct和class的区别,对于C#初学者来说是有必要加以了解并掌握的. 简单来说,struct是值类型,创建一个struct类型的实例被分配在栈上.class是引用类型,创建 ...

  3. 【剑指Offer面试编程题】题目1515:打印1到最大的N位数--九度OJ

    题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一组测试样例. 对于每个测试案例,输入一个数字N(1<=N<=5). 输出: 对应每个测试案例,依次打印从1 ...

  4. jQuery EasyUI window窗口实例

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

  5. windowsService 程序

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  6. Redis的下载与安装

    1). 从官网上下载Redis的压缩包   2). 将压缩包解压到 某个指定的文件目录中         tar -xzvf redis-4.0.9.tar.gz  /xx/xx/xx_dir   3 ...

  7. Ubuntu 19.10将使用GCC 9作为默认编译器

    作为我们这一周期一直期待的变化,Ubuntu 19.10升级到GCC 9作为GCC 8的默认系统编译器. Ubuntu 19.10(和Ubuntu 20.04 LTS)将使用GCC 9 stable作 ...

  8. C++面试常见问题——10派生类的构造与析构

    派生类的构造与析构 派生类的构造 派生时构造函数与析构函数不会被继承,需要重新定义派生类的构造函数与析构函数.派生类对象包含了基类对象的值,创建派生类时首先会调用基类的构造函数,若派生类中含有其它类对 ...

  9. UAC绕过初探

    笔者最近在学习UAC绕过的技术,通过对其他师傅的文章进行总结,成功利用DLL劫持绕过了UAC,并且可以以High Mandatory Level来启动进程.在此记录下学习过程,笔者也是初次接触,若各位 ...

  10. chromedriver版本问题

    最新的chromedriver 66.0.3359.117 的对应chromedriver版本为2.38 http://npm.taobao.org/mirrors/chromedriver/ Web ...