可以把Java中的对象写到本地文件中

序列化流(对象操作输出流)
构造方法

成员方法

使用对象输出流将对象保存到文件会出现NotSerializableException异常
解决方案:需要让Javabean类实现Serializable接口
![]()
Student
package myio;
import java.io.Serializable;
public class Student implements Serializable {
    private String name;
    private int age;
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }
    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }
    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
} 
ObjectStreamDemo
package myio;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class ObjectStreamDemo {
    public static void main(String[] args) throws IOException {
        Student stu = new Student("zhangsan",20);
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\Web\\API\\src\\myio\\e.txt"));
        oos.writeObject(stu);
        oos.close();
    }
} 
反序列化流(对象操作输入流)
构造方法

成员方法

package myio;
import java.io.*;
public class ObjectStreamDemo2 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\Web\\API\\src\\myio\\e.txt"));
        Object o = ois.readObject();
        System.out.println(o);
        ois.close();
    }
} 
在这个里面需要注意的是版本号的问题,这样在更改之后不会报错
package myio;
import java.io.Serializable;
public class Student implements Serializable {
    private static final long serialVersionUID = 5982546292687225019L;
    private String name;
    private int age;
    public Student() {
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }
    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }
    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
} 
自动生成这个版本号
复制Serializable

点击Settings
在里面搜索Settings

把下面的这两个勾选上

这样应用到idea中就可以自动生成这个版本号了
如果想要隐藏一些数据,就可以把这个隐藏

总结




















