0

我正在尝试将二进制文件写入指定的文件夹,但是它一直给我一个例外。例如,如果我在不指定任何文件夹的情况下编写文件,程序将毫无问题地写入:

public void saveFile(String name) throws IOException {
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(name + ".bin"));
    out.writeObject(this);
    out.close();
}

但是,当我尝试指定文件夹时,程序只是不写入文件:

public void saveFile(String name) throws IOException {
    File location = new File("/path/" + name + ".bin");
    FileOutputStream fos = new FileOutputStream(location);

    ObjectOutputStream out = new ObjectOutputStream(fos);
    out.writeObject(this);
    out.close();
    fos.close();
}

我尝试了几种不同的方法,但仍然没有解决方案。有人知道我在做什么错吗?

4

2 回答 2

0

非序列化的唯一原因似乎是你可能没有实现 Serializable 接口并正确给出你的路径名,例如:-“C:\Users\..”希望它有效

于 2013-08-20T12:11:11.573 回答
0

检查您要编写的课程是否是Serializable

public class Foo implements java.io.Serializable{   

    //...

    public void write() throws IOException{
        ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("Test.bin"));
        os.writeObject(this);
        os.close();
    }   

}

另一个问题: 如果没有命名的文件夹path,则无法写入对象

再次检查您的代码。

于 2013-08-20T12:02:36.150 回答