[ djura1 @ 01.04.2004. 13:27 ] @
Molio bih da mi neko objasni ovo, posto mi nista nije jasno.
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();
        }

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());
        }

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
[ Last Man Standing @ 01.04.2004. 22:54 ] @
Pogledaj oko foldera gde ti je JVM odnosno java.exe koji se izvrsava kada pozoves svoj program.
[ djura1 @ 02.04.2004. 07:04 ] @
Ovo je novi momenat: gore navedeno se desava kad pokrenem program iz NetBeans-a. Znaci, fajla nigde nema.
Medjutim, kad ga pokrenem iz komandne linije, sve se desava regularno, fajl je na svom mestu. Izgleda da je to do NetBeans-a?
[ dejankr @ 02.04.2004. 08:10 ] @
Citat:
djura1:
Ovo je novi momenat: gore navedeno se desava kad pokrenem program iz NetBeans-a. Znaci, fajla nigde nema.
Medjutim, kad ga pokrenem iz komandne linije, sve se desava regularno, fajl je na svom mestu. Izgleda da je to do NetBeans-a?


Mislim da je samo stvar odakle pokrećeš program, tj. šta se u tom trenutku smatra tekućim direktorijumom (pošto nisi naveo putanju do fajla, on se snima u tekući direktorijum). Ovo bi najverovatnije trebalo da može da se setuje prilikom pokretanja programa (na žalost ne koristim NetBeans pa ne znam). Fajl se sigurno negde snima i ako probaš da radiš search, sigurno ćeš ga naći. Možda se koristi home direktorijum (kod Windowsa je to negde u My Documents) ili čak direktorijum odakle si pokrenuo NetBeans (o ovo ne verujem, ali ko zna...).