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

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 に答える
0

非シリアル化の唯一の理由は、シリアル化可能なインターフェイスを実装していない可能性があり、たとえば、「C:\Users\..」のパス名を正しく指定していない可能性があることです。

于 2013-08-20T12:11:11.573 に答える