ObjectInputStream 和 ObjectOutputStream(对象的序列化、持久化)
来源:互联网 发布:网络爬虫书籍推荐 编辑:程序博客网 时间:2024/04/30 12:13
将堆内存中的对象存储在硬盘上
被持久化的对象必须实现了Serializble接口
write() 和 writeInt()区别:前者只存储的int的最低8位,后者存储int的4个8位全显示。
没有方法的接口称之为 标记接口,相当于把实现它的类标注一下。
Serializble接口下只有一个常量:serialVersionUID 用于实现它的子类分配一个UID,这个UID和保存在硬盘的对象的UID是一个。UID的产生是由类中的成员组成的。比如:Person类extends于Serializble接口,然后保存一个p1对象在硬盘上,这时p1对象和Person类的UID是一致的。如果在后面修改Person类的成员,下次再用Perosn类去引用p1对象时就会报错。
例:
Person.java
import java.io.Serializable;public class Person implements Serializable{static final longserialVersionUID= 42L;// 手动将serialVersionUID的值固定,更改类成员也不会改变其值Stringname;transient intage;// 如果不想将某个成员序列化,就加transientstatic Stringcountry= "cn"; // 静态是不能被序列化的public Person(String name, int age){// TODO Auto-generated constructor stubthis.name = name;this.age = age;}public String getName(){return name;}public void setName(String name){this.name = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}@Overridepublic String toString(){// TODO Auto-generated method stubreturn name + ":" + age + ":" + country;}}
ObjectDemo.java
import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;public class ObjectDemo{/** * @param args */public static void main(String[] args) throws Exception{writeObj();readObj();}public static void readObj() throws Exception{ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\tmp\\obj.txt"));Person p = (Person) ois.readObject();System.out.println(p);ois.close();}public static void writeObj() throws Exception{ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\tmp\\obj.txt"));oos.writeObject(new Person("zhangsan", 30));oos.close();}}
- ObjectInputStream 和 ObjectOutputStream(对象的序列化、持久化)
- 对象序列化ObjectOutputStream,ObjectInputStream
- 对象序列化 ObjectInputStream ObjectOutputStream
- Java的IO操作(三) - 对象的序列化、ObjectInputStream和ObjectOutputStream类
- Java对象序列化ObjectOutputStream和ObjectInputStream示例
- Java对象序列化ObjectOutputStream和ObjectInputStream示例
- Java对象的序列化ObjectInputStream与ObjectOutputStream
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- Java IO之对象的序列化、ObjectInputStream和ObjectOutputStream类
- Socket同时使用ObjectInputStream和ObjectOutputStream传输序列化对象时的顺序
- 使用对象输入输出流(ObjectOutputStream,ObjectInputStream)实现序列化对象的深度克隆
- ObjectInputStream\ObjectOutputStream用字节流将一个Object对象持久化和读取
- Java IO--对象序列化Serializable、ObjectOutputStream、ObjectInputStream、transient
- IO流反序列化(objectInputStream)和序列化(ObjectOutputStream)连续存储对象StreamCorruptedException
- java语言编程IO流之对象序列化和ObjectInputStream与ObjectOutputStream
- 通过ObjectOutputStream序列化和使用ObjectInputStream反序列化
- [Java 12 IO] Serializable 初步 ObjectOutputStream ObjectInputStream 将序列化的对象打出来
- No. 19 - Left Rotation of String
- No. 20 - Number of 1 in a Binary
- Linux学习笔记(一)
- lq51--基于8051的嵌入式实时操作系统
- hdu1068
- ObjectInputStream 和 ObjectOutputStream(对象的序列化、持久化)
- VC 多线程编程
- poj3468 A Simple Problem with Integers
- vs下创建并调用DLL--简单例子
- 虚函数的特性
- android网易顶部导航栏demo
- 资源监控_自己编写一个nmon
- #include<reg51.h>点亮一排led
- <codeforces>Little Elephant and Sorting