将对象写道硬盘上and从硬盘上读入对象

package test;
 
 
import java.io.*;
import java.sql.SQLClientInfoException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.zip.InflaterInputStream;
 
import javax.annotation.processing.FilerException;
import javax.management.RuntimeErrorException;

import privateclass.Filterby_Name;
import privateclass.Filterby_hidden;
import privateclass.Filterby_java;
import privateclass.MyBufferedReader;
import privateclass.Person;
 
public class Main {
 
    private static final String space_operator = " ";
    private static final double pi = Math.PI;
    private static final String LINE_SEPARATOR = System.getProperty("line.separator");
	private static final int SIZE = 1024*1024;
    public static void main(String[] args) throws Exception {
 
    	
    	writeobj();
    	
    	readobject();
    	
    }
    /**
     * 将对象写入硬盘的时候我们需要将obj序列化
     * 也就是在需要写入对象的类里面实现Serializable接口(标记接口什么都不需要覆盖)
     * 我们可以给类标记一个serialVersionUID
     * @throws IOException
     * @throws FileNotFoundException
     * @throws ClassNotFoundException
     */
	public static void readobject() throws IOException, FileNotFoundException, ClassNotFoundException {
		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.object"));
    	
    	Person person = (Person) ois.readObject();
    	
    	System.out.println(person.getNaem() + " " + person.getAge());
	}
	
	/**
	 * 我们在读取object的时候需要反序列化
	 * 我们一定要有那个创建对象的类文件才能读入对象
	 * @throws IOException
	 * @throws FileNotFoundException
	 */
	public static void writeobj() throws IOException, FileNotFoundException {
		ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.object"));
    	
    	oos.writeObject(new Person("张三", 15));
    	
    	oos.close();
	}
}




package privateclass;

import java.io.Serializable;

public class Person implements Comparable<Object>,Serializable{

	/**
	 * 当我们写入对象的时候如果不想写入他的某一项内容我们可以加上static或者加上transient
	 */
	private static final long serialVersionUID = 1L;
	private  String naem;
	private int age;

	public String getNaem() {
		return naem;
	}

	public void setNaem(String naem) {
		this.naem = naem;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public Person(String naem, int age) {
		super();
		this.naem = naem;
		this.age = age;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + age;
		result = prime * result + ((naem == null) ? 0 : naem.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Person other = (Person) obj;
		if (age != other.age)
			return false;
		if (naem == null) {
			if (other.naem != null)
				return false;
		} else if (!naem.equals(other.naem))
			return false;
		return true;
	}

	public Person() {
		super();
	}

	@Override
	public String toString() {
		return "Person [naem=" + naem + ", age=" + age + "]";
	}

	@Override
	public int compareTo(Object o) {
		Person p = (Person) o;
		int temp = this.age - p.age;
		return temp == 0 ? this.naem.compareTo(p.naem) : temp;
	}

}

  

posted @ 2019-11-09 19:11  WINDZLY  阅读(211)  评论(0编辑  收藏  举报