仅在序列化文件存在时反序列化

时间:2015-09-20 22:16:08

标签: java

我的程序设置在退出时序列化某个Facebook对象,并在打开时反序列化。但是我希望在反序列化部分中有一个if语句,只有在存在一个serilization文件以避免错误时才继续使用它。我怎样才能做到这一点?无论如何,我可以参考文件" serilaized"并检查它是否存在?

反序列化部分:

Facebook facebook = null;

    try {
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
                "serialized"));

        facebook = (Facebook) ois.readObject();

        ois.close();
    } catch (FileNotFoundException e) {
        System.err.println("Could not open the file \"serialized\"");
    } catch (IOException e) {
        System.err.println("Could not de-serialize the object");
    } catch (ClassNotFoundException e) {
        System.err.println("Could not cast the de-serialized object");
    }

序列化部分:

try {
                ObjectOutputStream oos = new ObjectOutputStream(
                        new FileOutputStream ("serialized"));

                oos.writeObject(facebook);
                oos.close();
            } catch (FileNotFoundException e) {
                System.err
                        .println("Could not create the file \"serialized\"");
            } catch (IOException e) {
                System.err.println("Could not serialize the object");
            }

1 个答案:

答案 0 :(得分:1)

FileNotFoundException应该捕获没有文件要反序列化的情况。抛出错误很好,只要处理得很好。