我有一个问题,我已经处理了很长一段时间了。尝试反序列化文件夹中的自定义“声音”对象时,我继续获得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
希望这是你们需要的所有信息,非常感谢你的帮助!