一、整体代码

ObjectStreamDemo.java

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; public class ObjectStreamDemo { /**
* 文件转化为Object
* @param fileName
* @return byte[]
*/
public static Object file2Object(String fileName) { FileInputStream fis = null;
ObjectInputStream ois = null;
try {
fis = new FileInputStream(fileName);
ois = new ObjectInputStream(fis);
Object object = ois.readObject();
return object;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (ois != null) {
try {
ois.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
return null;
} /**
* 把Object输出到文件
* @param obj
* @param outputFile
*/
public static void object2File(Object obj, String outputFile) {
ObjectOutputStream oos = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(outputFile));
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (oos != null) {
try {
oos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
} /**
* @param args
*/
public static void main(String[] args) { String fileName = "1.txt";
UserVo vo = new UserVo("michael", "大大", 18, new Date()); ObjectStreamDemo.object2File(vo, fileName);
System.out.println("success write bean:UserVo to file."); UserVo tmpvo = (UserVo) ObjectStreamDemo.file2Object(fileName);
System.out.println("read bean:UserVo from file get info : " + tmpvo); } }

UserVo.java

import java.io.Serializable;
import java.util.Date; public class UserVo implements Serializable { /**
* serialVersionUID
*/
private static final long serialVersionUID = -6846034858002233878L; private String userId; private String userName; private int age; private Date born; public UserVo() {
} public UserVo(String userId, String userName, int age, Date born) {
this.userId = userId;
this.userName = userName;
this.age = age;
this.born = born;
} /**
* @return the userId
*/
public String getUserId() {
return userId;
} /**
* @return the userName
*/
public String getUserName() {
return userName;
} /**
* @return the age
*/
public int getAge() {
return age;
} /**
* @return the born
*/
public Date getBorn() {
return born;
} /**
* @param pUserId the userId to set
*/
public void setUserId(String pUserId) {
userId = pUserId;
} /**
* @param pUserName the userName to set
*/
public void setUserName(String pUserName) {
userName = pUserName;
} /**
* @param pAge the age to set
*/
public void setAge(int pAge) {
age = pAge;
} /**
* @param pBorn the born to set
*/
public void setBorn(Date pBorn) {
born = pBorn;
} @Override
public String toString() {
return "userId=[ " + userId + " ] userName=[ " + userName + " ] age=[ "
+ age + " ] born=[ " + born + "] .";
} }

二、解释

Java I/O流-ObjectInputStream、ObjectOutputStream的更多相关文章

  1. Java I/O流输入输出,序列化,NIO,NIO.2

    Java IO流 File类: File类是java.io包下代表和平台无关的文件和目录,File不能访问文件内容本身. File类基本操作: System.out.println("判断文 ...

  2. Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

    Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...

  3. Java之IO(七)ObjectInputStream和ObjectOutputStream

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7003536.html 1.前言 本章介绍Java字节流中重要的成员,对象流ObjectInputStream和O ...

  4. Java精选笔记_其他IO流(ObjectInputStream、DataInputStream、PrintStream、标准输入输出流)

    其他IO流 ObjectInputStream和ObjectOutputStream 如果希望永久将对象转为字节数据写入到硬盘上,即对象序列化,可以使用ObjectOutputStream(对象输出流 ...

  5. Java IO: 序列化与ObjectInputStream、ObjectOutputStream

    作者:Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和O ...

  6. 序列化流(ObjectOutputStream、ObjectInputStream)

    1.序列化流(ObjectOutputStream) package demo10.objstream; /* java.io.ObjectOutputStream extends OutputStr ...

  7. 【转】输入/输出流 - 深入理解Java中的流 (Stream)

    基于流的数据读写,太抽象了,什么叫基于流,什么是流?Hadoop是Java语言写的,所以想理解好Hadoop的Streaming Data Access,还得从Java流机制入手.流机制也是JAVA及 ...

  8. java 笔记(4) —— java I/O 流、字节流、字符流

    Java中使用流来处理程序的输入和输出操作,流是一个抽象的概念,封装了程序数据于输入输出设备交换的底层细节.JavaIO中又将流分为字节流和字符流,字节流主要用于处理诸如图像,音频视频等二进制格式数据 ...

  9. Java基础——IO流

    今天刚刚看完java的io流操作,把主要的脉络看了一遍,不能保证以后使用时都能得心应手,但是最起码用到时知道有这么一个功能可以实现,下面对学习进行一下简单的总结: IO流主要用于硬板.内存.键盘等处理 ...

随机推荐

  1. 初始Android-配置环境

    最近闲来无事自学了一下Android,今天没事想整理一下思绪,简单的介绍一下我自己对环境配置的认识,仅供参考,欢迎提出意见. 1.首先打开Eclipse,然后安装ADT,准备好ADTjar包或者zip ...

  2. html 5 新增标签及简介

    作为下一代Web技术的代表,HTML5概念在近些年尤其火热.据了解,HTML5受到垂青最直接的原因就是其跨平台性,除此之外,它不仅仅可以用于表示Web内容,还可能将Web带入一个广阔的生态平台. 下面 ...

  3. [Swust OJ 797]--Palindromic Squares(回文数水题)

    题目链接:http://acm.swust.edu.cn/problem/797/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  4. js实现input输入框只能输入数字的功能

    <input type="text" style="ime-mode:disabled;" onpaste="return false;&quo ...

  5. django中间件templates写法

    def templates_context_process(request): from django.contrib.sites.models import Site from accounts.m ...

  6. Visual C++ 6.0编程环境的使用

    1.1 编制并运行程序的四部曲 (1)编辑(把程序代码输入,交给计算机). (2)编译(成目标程序文件.obj).编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟 ...

  7. Chromium如何显示Web页面

    Displaying A Web Page In Chrome 概念化的应用分层 参见原文档:http://goo.gl/MsEJX 每一个box代表一个抽象层.下层不依赖于上层. WebKit:渲染 ...

  8. poj 2245 Lotto(dfs)

    题目链接:http://poj.org/problem?id=2245 思路分析:无重复元素组合组合问题,使用暴力枚举法,注意剪枝条件. 代码如下: #include <iostream> ...

  9. HDU 4569Special equations2012长沙邀请赛E题(数学知识)

    Special equations Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  10. ASP.NET身份验证的几种方式

    1.windows身份验证 2.  Forms验证 3.Passport验证 4.none http://www.jb51.net/article/30510.htm