-------android培训、java培训、期待与您交流!
----------
没有方法的接口称为标记接口,如Serializable
只有继承Serializable才能进行序列化,用以给类在编译时期分配一个serialVersionUID
在读取序列化对象过程中,检测对象的serialVersionUID和该类的serialVersionUID是否匹配
部分不被序列化(即该成员不被存储至文件上)
加上关键字transient,该成员也不被序列化
静态成员不能序列化,只能序列化堆中成员
ObjectOutputStream的writeObject方法
ObjectInputStream的readObject()方法
/*
元素的序列化
Strawberry2013-5-5
*/
import java.io.*;
class SerialDemo
{
public static void main(String[] args) throws Exception
{
//write();
read();
}
public static void read() throws Exception
{
ObjectInputStream obji = new ObjectInputStream(new FileInputStream("obj.txt"));
Person p =null;
while((p=(Person)obji.readObject()) != null)// !!!到达末尾,再读取会发生java.io.EOFException异常
{
System.out.println(p);//
}
obji.close();
}
public static void write() throws IOException
{
ObjectOutputStream objo = new ObjectOutputStream(new FileOutputStream("obj.txt"));
objo.writeObject(new Person("zhang", 23));
objo.writeObject(new Person("li", 20));
objo.writeObject(new Person("wang", 21));
objo.writeObject(null) //此处新建一个null值,方便检查末尾
objo.close();
}
}
class Person implements Serializable //必须继承Serializable 用以给类在编译时期分配一个serialVersionUID
{ //在读取序列化对象过程中,检测对象的serialVersionUID和该类的serialVersionUID是否匹配
public static final long serialVersionUID = 42L;//可以为该类分配一个固定的serialVersionUID值,即使该类修改也可读取
private String name;
transient int a; //加上关键字transient,该成员也不被序列化 ---即对象的值不被存储在文件上
public static int a; //静态成员不能序列化,只能序列化堆中成员
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public String toString()
{
return "name: "+name+" age: "+age;
}
}
分享到:
相关推荐
对象序列化是Java编程中的必备武器 Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第4页。 5.2.2 序列化应用 当你想把内存中的对象状态保存到一个文件中或者数据库中时候; 当你想用套接字在...
序列化: 就是使用流的技术将对象中的数据保存到文件中。 反序列化: 就是使用流的技术将文件中的数据读取到对象中。 使用到的流技术 序列化:ObjectOutputStream 反序列化:ObjectInputStream ObjectOutputStream...
groovy-io消除了使用ObjectInputStream / ObjectOutputStream序列化对象的需要,而使用了JSON格式。 有第三个可选类( JsonObject ),请参见下面的“非类型化用法”。 groovy-io不需要类实现Serializable或...
Java 序列化是指把 Java 对象转换为字节序列的过程,便于保存在内存、文件、数据库中,ObjectOutputStream类的 writeObject() 方法可以实现序列化。反序列化是指把字节序列恢复为 Java 对象的过程,...
主要介绍了java序列化与ObjectOutputStream和ObjectInputStream的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
ObjectInputStream 和 ObjectOutputStream 的作用是,对基本数据和对象进行序列化操作支持。本文给大家详细介绍了ObjectInputStream 和 ObjectOutputStream的相关知识,感兴趣的朋友一起学习吧
|--ObjectInputStream/:对象的序列化。用于操作对象的流,将一个具体的对象进行持久化写入到硬盘上。 | |--PipedInputStream/:管道流。管道读取流可以读取管道写入流的数据。注意:需要加多线程技术,否则会发生...
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...
Java中提供了一种序列化操作的方式,用一个字节序列化来表示一个对象,该字节序列化中保存了【对象的属性】,【对象的类型】和【对象的数据】。把字节序列化保存到文件中,就可以做到持久化保存数据内容。 从文件中...
} 由于定义了二个接口方法,方法参数分别是ObjectOutputStream和ObjectInputStream类型对象,因此这二个接口方法必须通过实现该接口
ObjectInputStream序列化实例,简单就学会,JAVA原来so easy
在Java中提供有ObjectInputStream与ObjectOutputStream这两个类用于序列化对象的操作。这两个类是用于存储和独缺对象的输入输出流类,只要把对象中的所有成员变量都存储起来,等于保存了这个对象,之后从保存的...
在该方法中,首先通过FileInputStream和ObjectInputStream读取源文件对象,然后通过ObjectOutputStream将读取的对象写入备份文件中。这个简单的示例代码展示了如何使用Java序列化来实现一个文件备份工具的简单功能,...
JavaIO对象流 FileInputStream 与 ObjectInputStream 和 ObjectOutputStream 的组合 奥利弗·缪尔
Java中提供了一种序列化操作的方式,用一个字节序列化来表示一个对象,该字节序列化中保存了==【对象的属性】,【对象的类型】和【对象的数据】。把字节序列化保存到文件中,就可以做到持久化==保存数据内容。 从...
只要我们的class 实现了java.io.Serializable接口,就可以利用ObjectOutputStream的writeObject()方法将一个对象序列化;利用ObjectInputStream的readObject()方法,可以返回读出的object对象。Serializable接口...
ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 ObjectInputStream.GetField 提供对从输入流读取的持久字段的访问权限。 ObjectOutputStream ...
ObjectInputStream ObjectOutputStream ByteArrayInputStream ByteArrayOutputStream 【字符流】 Reader Writer InputStreamReader OutputStreamWriter BufferedReader BufferedWriter /PrintWriter FileReader ...
java.io包中,提供了ObjectInputStream和ObjectOutputStream将数据流功能扩展至可读写对象。在ObjectInputStream中用readObject()方法可以直接读取一个对象,ObjectOutputStream中用writeObject()方法可以直接将对象...
录入输出项目,帮助网友解决问题:1、界面的切换,2、对象序列化问题ObjectInputStream ObjectOutputStream 储存数据用的记事本系列化对象的方法