Imam problem sa cuvanjem podataka na fajl. Moram da razvijem web aplikaciju koja ce podatke umesto u bazi,
cuvati na fajlu. Opet imam metodu save(), ali ona nema komunikaciju sa bazom, nego sa fajlom, evo kako sam je resio:
public class Fax implements Serializable{
...
public boolean save() {
boolean saved = false;
try {
ObjectOutputStream faxOos = new ObjectOutputStream(new FileOutputStream("db/faxDb.tmp", true));
faxOos.writeObject(new Fax());
faxOos.close();
saved = true;
}
catch (Exception e) {
e.printStackTrace();
saved = false;
}
return saved;
}
i ta metoda snimi u fajl objekat Fax-a, ali problem je kada moram to iscitati iz fajla, za to sam napisao metodu loadAll:
public class Fax implements Serializable{
...
public static Vector loadAll(){
Vector allFax = new Vector();
try {
ObjectInputStream faxOis = new ObjectInputStream(new FileInputStream("db/faxDb.tmp"));
while(true){
try{
allFax.addElement(faxOis.readObject());
} catch (EOFException e){
return allFax;
}
}
catch (Exception e) {
e.printStackTrace();
allFax = null;
}
return allFax;
}
ali izbacuje StreamCorruptedException. Svaka sugestija je dobrodosla! Ps. Probao sam i:
public static Vector loadAll(){
Vector allFax = new Vector();
try {
ObjectInputStream faxOis = new ObjectInputStream(new FileInputStream("db/faxDb.tmp"));
while (true){
Object obj = faxOis.readObject();
if (obj instanceof Fax )
break;
allFax.add(obj);
}
}
catch (Exception e) {
e.printStackTrace();
allFax = null;
}
return allFax;
}
ali onda bas nista ne uradi...
Pozdrav!
Milan