Napisao sam mali program koji bi trebalo da snimi objekat klase koja implementira Serializable u fajl. Deo koda:
Code:
try{
FileOutputStream f=new FileOutputStream("fajl.lgn");
ObjectOutputStream out=new ObjectOutputStream(f);
out.writeObject(lgn);
out.close();
}
try{
FileOutputStream f=new FileOutputStream("fajl.lgn");
ObjectOutputStream out=new ObjectOutputStream(f);
out.writeObject(lgn);
out.close();
}
Sad, sve je proslo lepo, kompilacija, izvrsavanje, sve bez greske, ali kad sam pogledao u folder gde je klasa programa, nigde nema fajla (fajl.lgn). Lupao sam glavu satima, zatim probao drugi program koji bi trebao da procita objekat iz snimljenog fajla.
Code:
try{
FileInputStream fin=new FileInputStream("fajl.lgn");
ObjectInputStream oin=new ObjectInputStream(fin);
lgn=(Login)oin.readObject();
oin.close();
System.out.println(lgn.getUserName());
System.out.println(lgn.getPassword());
}
try{
FileInputStream fin=new FileInputStream("fajl.lgn");
ObjectInputStream oin=new ObjectInputStream(fin);
lgn=(Login)oin.readObject();
oin.close();
System.out.println(lgn.getUserName());
System.out.println(lgn.getPassword());
}
Na moje zaprepascenje, sve je radilo kako treba.
Sad, nije mi jasno kako? Kako je serijalizovani objekat sacuvan na disk ako nije u fajlu? Kako je posle toga deserijalizovan iz fajla ako fajl ne postoji? Ako nije u fajlu, kako se drugacije sacuva?
Nadam se da neko moze ovo da objasni. Hvala unapred