用 ObjectOutputStream 写一个对象

Write a object with ObjectOutputStream

很明显,我无法将Test对象写入文件Test.dat,我的问题是,到底是什么原因不成功?

import java.io.*;

public class Test {

    private int a = 10;
    private double b = 7.5;
    private String m = "valu";

    public static void main(String[] args) {
        Test t = new Test();

        ObjectOutputStream output = ObjectOutputStream(new FileOutputStream("Test.dat"));
        output.writeObject(t);
        output.close();
    }
}

尝试

ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Test.dat"));

您错过了 "new" 因此编译器正在寻找静态方法而不是构造函数

除了new关键字,你忘了实现Serializable

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

public class Test implements Serializable{

    private int a = 10;
    private double b = 7.5;
    private String m = "valu";

    public static void main(String[] args) throws IOException {
        Test t = new Test();

        ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Test.dat"));
        output.writeObject(t);
        output.close();
    }

}