我正在尝试将二进制文件写入指定的文件夹,但它不断给我一个例外。 例如,如果我在没有指定任何文件夹的情况下编写文件,程序就会编写它没有问题:
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();
}
我尝试了几种不同的方法,但仍然没有解决方案。 有谁知道我做错了什么?
答案 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 \ ..” 希望它有效