取消序列化StreamCorrupted

时间:2014-01-09 11:18:52

标签: java exception serialization

我有一个问题,我已经处理了很长一段时间了。尝试反序列化文件夹中的自定义“声音”对象时,我继续获得3个例外。 IOException,NullPointerException和StreamCorruptedException。请看一下:

阅读声音的方法:

public static Sound readSound(String loc){
    try{
        FileInputStream fis = new FileInputStream(loc);
        ObjectInputStream ois = new ObjectInputStream(fis);

        fis.close();
        ois.close();

        return (Sound)ois.readObject();
    }catch(Exception e){
        System.out.println("Failed to read a serialized object.");
        e.printStackTrace();
        return null;
    }
}

收到的例外/错误:http://gyazo.com/b53faa9590adf6448bf14db11f275325 (这里粘贴太多而且粘贴不正确)

加载声音: (添加声音只是将声音添加到ArrayList以及JComboBox)

private static File saveDirFile = new File("/Users/francisj12/Desktop/ACData/");
private static File saveDirFileSounds = new File(saveDirFile.getPath()+"/sounds/");
public static void loadAllSounds(){
    if(!saveDirFile.exists()){
        saveDirFile.mkdir();
    }
    if(!saveDirFileSounds.exists()){
        saveDirFileSounds.mkdir();
    }

    for(int x=0; x<saveDirFileSounds.list().length; x++){
        try{
            File sndFl = new File(saveDirFileSounds.listFiles()[x].getPath());
            Sound newSound = Serialize.readSound(sndFl.getPath());
            addSound(newSound);
        }catch(Exception e){
            e.printStackTrace();
            continue;
        }
    }
}

这里是.ser文件的样子:(一旦我开始在变量上使用瞬态,所以我可以序列化我自己不了解瞬态的自定义Sound对象,它开始使.ser看起来如下而不是一吨奇怪的人物现在只有一行奇怪的人物) ¨ÌsrAlarms.SoundË.®ŸÓÓxp

希望这是你们需要的所有信息,非常感谢你的帮助!

0 个答案:

没有答案