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

时间:2013-08-20 11:53:57

标签: java serialization fileoutputstream

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

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();
}

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

2 个答案:

答案 0 :(得分: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的文件夹,则无法写入对象

再次检查您的代码。

答案 1 :(得分:0)

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