对象输入输出流

作用:保存期望长久保存的数据。

一般情况下,程序执行完,之前建立的对象都要重新回收的,如果想永久保存一些对象,可通过对象的输入输出流将对象写入硬盘,这个过程也称为序列化。

使用的流程:

1.对需要持久化的对象先进行序列化

2.将序列化的二进制数据存入文件

(在第一个代码那里实现)

---------------------------------------------------------------------------------

3.从文件中读取数据,并显示出来,使用readObject( )方法

(在第二个代码实现)

对象输入输出流_第1张图片

 

package hanghao;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Hanghao {

	public static void main(String args[]) throws Exception{
	     Person p=new Person("p1","zhangsan",20);
	     System.out.println("-----写入文件前-----");
	     System.out.println("Person对象的id:"+p.getId());
	     System.out.println("Person对象的name:"+p.getName());
	     System.out.println("Person对象的age:"+p.getAge());
	     ///objectStream.txt用来保存对象序列化后生成的二进制文件,也称为序列化
	     FileOutputStream fos=new FileOutputStream("objectStream.txt");
	     //ObjectInputStream类用来实现对象的反序列化。
	     ObjectOutputStream oos=new ObjectOutputStream(fos);
	     oos.writeObject(p);
	}
}
class Person implements Serializable{
	private String id;
	private String name;
	private int age;
	public Person(String id,String name,int age)
	{
		super();
		this.id=id;
		this.name=name;
		this.age=age;
	}
	public String getId(){
		return id;
	}
	public String getName(){
		return name;
	}
	public int getAge(){
		return age;
	}
}

从文件读取原对象

package hanghao;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Hanghao {

	public static void main(String args[]) throws Exception{
	    //从文件中读取文件
	    FileInputStream fis=new FileInputStream("objectStream.txt");
	    //声明对象输入流
	    ObjectInputStream ois=new ObjectInputStream(fis);
	    //用对象读取其中的内容
	    Person p=(Person)ois.readObject();
		
		
		System.out.println("-----写入文件读取后-----");
	     System.out.println("Person对象的id:"+p.getId());
	     System.out.println("Person对象的name:"+p.getName());
	     System.out.println("Person对象的age:"+p.getAge());
	     
	}
}
class Person implements Serializable{
	private String id;
	private String name;
	private int age;
	public Person(String id,String name,int age)
	{
		super();
		this.id=id;
		this.name=name;
		this.age=age;
	}
	public String getId(){
		return id;
	}
	public String getName(){
		return name;
	}
	public int getAge(){
		return age;
	}
}

 

你可能感兴趣的:(java语言)