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