Q: readObject(), array?

Advertisement
class Eph2000F extends Frame implements ActionListener, WindowListener, Runnable
{ public void actionPerformed(ActionEvent AE) //===============================================
{ if(AE.getSource()==MI_Avaa) //open
{ FileDialog f=new FileDialog(this,"Avaa Examiphobia-tiedosto (*.eph)",FileDialog.LOAD);
f.show();
tiedosto=f.getFile(); //file
polku=f.getDirectory(); //path
lueTiedot();
KysymysLuokka Kysymykset[]; //questionclass questions[]
static class KysymysLuokka implements Serializable { ... }
public void lueTiedot() //readData()
{ if(tiedosto!=""&&tiedosto!=null&&polku!=""&&polku!=null)
{ f=new File(polku+tiedosto);
if(!f.exists()) { ilmoita("Tiedosto ei ole olemassa!"); return; } //tell to user...
else if(f.isDirectory()) { ilmoita("Tiedosto on hakemisto!"); return; }
else if(!f.canWrite()) { ilmoita("Tiedosto on kirjoitus-suojattu!"); return; }
try
{ FileInputStream FIS=new FileInputStream(f);
ObjectInputStream OIS=new ObjectInputStream(FIS);
Kysymykset=new KysymysLuokka[1];
Kysymykset[0]=new KysymysLuokka();
kysymysNyt=0; //question now
Kysymykset=(KysymysLuokka[])OIS.readObject(); //-> to catch, because Kysymykset=null!!!
OIS.close(); out("OIS.close() suoritettu");
kysymysNyt=0; out("kysymysNyt=0; suoritettu");
catch(Exception E) { ilmoita("Deserialisointi ei onnistunut..."); } //it comes here.
Hi! where's the problem. this is ver 2.00 of eph; and ver 1.00 worked correctly.
I just can't find the problem. kysymykset = null, why
Advertisement

Replay

Have you checked so that you havent serialized it as
null?Thanks, I think you are right, that I should check null-selialization. I must have algoritm-problem with save-method(), it propably saves object as null and there's nothing...
Otherwise I would recomend to put in traces and see
were you get it set to null.
By the way, do you get exceptions on this one? yes; lueTiedot()-> nullPointerException