Java FileOutputStream将二进制文件写入指定文件夹

Java FileOutputStream将二进制文件写入指定文件夹,java,serialization,fileoutputstream,Java,Serialization,Fileoutputstream,我试图将一个二进制文件写入一个指定的文件夹,但它总是给我一个异常。 例如,如果我在未指定任何文件夹的情况下写入文件,程序将毫无问题地写入文件: public void saveFile(String name) throws IOException { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(name + ".bin")); out.writeObject(this); ou

我试图将一个二进制文件写入一个指定的文件夹,但它总是给我一个异常。 例如,如果我在未指定任何文件夹的情况下写入文件,程序将毫无问题地写入文件:

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();
}
我尝试了几种不同的方法,但仍然没有解决办法。
有人知道我做错了什么吗?

检查您要编写的类是否可序列化

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
的文件夹,则无法写入对象


再次检查代码。

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

编写堆栈跟踪,它是可序列化的。您使用的方式是我可以使用的方式,无需指定任何路径。这样我就可以毫无问题地完成。检查是否有一个名为所需名称的文件夹。问题已解决。非常感谢你,伙计:)我以为程序会自动创建路径,但似乎我错了。问题是我输入了一个不存在的路径。我原以为程序会创建这条路径,但它没有。。。