Java对象序列化输入输出
在网上看到一篇有关于对象序列化的代码,自己仿着写了把
在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对象序列化输入输出的更多相关文章
- Java对象序列化剖析
对象序列化的目的 1)希望将Java对象持久化在文件中 2)将Java对象用于网络传输 实现方式 如果希望一个类的对象可以被序列化/反序列化,那该类必须实现java.io.Serializable接口 ...
- 理解Java对象序列化
http://www.blogjava.net/jiangshachina/archive/2012/02/13/369898.html 1. 什么是Java对象序列化 Java平台允许我们在内存中创 ...
- java 对象序列化与反序列化
Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为 ...
- java 对象序列化
java 对象序列化 package org.rui.io.serializable; import java.io.ByteArrayInputStream; import java.io.Byte ...
- 理解Java对象序列化(二)
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制.在撰写本文时,既参考了Th ...
- 关于 Java 对象序列化您不知道的 5 件事
数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处. 关于本系列 您觉得自己懂 Java 编程?事实上,大多数 ...
- java 对象序列化 RMI
对于一个存在于Java虚拟机中的对象来说,其内部的状态只保持在内存中.JVM停止之后,这些状态就丢失了.在很多情况下,对象的内部状态是需要被持久化下来的.提到持久化,最直接的做法是保存到文件系统或是数 ...
- Java对象序列化入门
Java对象序列化入门 关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结.此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制 ...
- Java对象序列化与反序列化一 JSON
Java对象序列化与反序列化一 JSON 1. 依赖库 jackson-all-1.6.1.jar 2. 代码 public class Student { private String nam ...
随机推荐
- 你知道HTTP协议的ETag是干什么的吗?
前言 在HTTP1.1规范中,新增了一个HTTP头信息:ETag.对于普通开发者来说,可能平时真的不会接触到该HTTP头.平时接触不到或者说用得少,不代表这个请求头不重要.ETag使用得当,是可以减少 ...
- leetcode刷题-- 3.二分查找
二分查找 正常实现 题解 public int binarySearch(int[] nums, int key) { int l = 0, h = nums.length - 1; while (l ...
- 初始化加载和导航时脚本执行的函数(初始化脚本执行环境)page.evaluateOnNewDocument
/** * Copyright 2017 Google Inc., PhantomJS Authors All rights reserved. * * Licensed under the Apac ...
- 吴裕雄--天生自然PYTHON爬虫:爬虫攻防战
我们在开发者模式下不仅可以找到URL.Form Data,还可以在Request headers 中构造浏览器的请求头,封装自己.服务器识别浏览器访问的方法就是判断keywor是否为Request h ...
- json object string互转
参考: https://www.cnblogs.com/guangshan/p/4459436.html JsonArray和JsonObject遍历方法 参考:https://blog.csdn.n ...
- C语言书籍入门---第三章
=======变量和数据类型========= 说 明:字符型 短整型 整型 长整型 单精度浮点型 双精度浮点型 无类型 数据类型:char short int long float d ...
- JDBC--调用函数&存错过程
1.通过Connection对象的prepareCall()方法创建CallableStatement对象的实例,在使用prepareCall()方法时需传入一个String类型的字符串,该字符串用于 ...
- centos 下yum 安装nginx
centos 下yum 安装nginx 1. 直接yum install nginx不行,要先处理下源: rpm -ivh http://nginx.org/packages/centos/6/noa ...
- 【Unity】双击物体
using UnityEngine; using System.Collections; using System; public class Click_yushe : MonoBehaviour ...
- MQTT 协议学习: 总结 与 各种定义的速查表
背景 经过几天的学习与实操,对于MQTT(主要针对 v3.1.1版本)的学习告一段落,为了方便日后的查阅 本文链接:<MQTT 协议学习: 总结 与 各种定义的速查表> 章节整理 MQTT ...