Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: rox on 21-04-2009, 08:24:32



Title: quello che vuole il prof ...
Post by: rox on 21-04-2009, 08:24:32
secondo voi al prof va bene se per scivere le informazioni di alcuni oggetti utilizziamo la classe writeObject?faccio un esempio.se il prof vuole che i nomi di tutte le persone vengano prese da una lista e caricate in un file,va bene se io faccio in questo modo o no?
Code:
import java.io.*;
public class fileobj
{
public static void main (String args[]) throws Exception
{
ObjectOutputStream file=new ObjectOutputStream(new FileOutputStream("pippo.doc"));
Lista r=new Lista()
                                for(int i=0;i<r.dim();i++)
                                 file.writeObject( r.deleteHead().getNome()  );
file.flush();
file.close();

}
}
secondo voi per il prof va bene così oppure devo usare altre classi per scrivere le informazioni di oggetti su file?
se dovessi usare altre classi mi potreste indicare quali e eventualmente come si usano?pomeriggio alle 6 c'è la prova e purtroppo questo dubbio mi è venuto adesso ed è terribile!!! :-)|a poche ore prima della prova!!!


Title: Re:quello che vuole il prof ...
Post by: Vivynz on 21-04-2009, 09:30:55
nel compito ti suggerirei di usare altri nomi per i file  :[Emoticon] Asd: cmq il file da cui devi leggere gli oggetti si suppone che già esista,non lo devi creare tu!!(era questo il dubbio?)


Title: Re:quello che vuole il prof ...
Post by: rox on 21-04-2009, 10:05:33
no il mio dubbio non era quello.il problema è che se ci chiede di mettere le informazioni di una lista su un file,non so quale classe utilizzare.
p.s. il nome del file l'ho cambiato,grazie per avermelo fatto notare non me ne ero accorto


Title: Re:quello che vuole il prof ...
Post by: Vivynz on 21-04-2009, 10:14:34
ah ok!!guarda io mi sono fatta una sorta di schemino...con i 3 casi...leggere/scrivere oggetti,stringhe,tipi primitivi(ho messo il caso di int ma la stessa cosa vale con Long, Float...)
inoltre devi ricordare di catturare tutte le eccezioni!!
Code:
//scrivere oggetti
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream (new File ("obj.txt")));
oos.writeObject(obj);
oos.close();
//leggere oggetti
ObjectInputStream ois=new ObjectInputStream(new FileInputStream (new File ("obj.txt")));
while(true)
{
try{
ois.readObject();
}
catch(EOFException e)
{
break;
}
}
ois.close();
//scrivere stringhe
FileWriter fw=new FileWriter(new File("str.txt"));
fw.write("stringa");
fw.close();
//leggere stringhe
String mystring="";
BufferedReader br=new BufferedReader(new FileReader(new File("str.txt")));
String s="";
while((s=br.readLine())!=null)
mystring=s;
br.close();
//scrivere tipi di dato primitivi
DataOutputStream dis=new DataOutputStream(new FileOutputStream(new File("int.txt")));
dis.writeInt(5);
dis.close();
//leggere tipi di dato primitivi
DataInputStream dis1=new DataInputStream(new FileInputStream(new File("int.txt")));
while(true)
{
try
{
System.out.println(dis1.readInt());
}
catch(EOFException e)
{
dis.close();
}
}
poi ovviamente quando leggi se devi ad esempio inserire gli oggetti in una lista, all'interno del ciclo metterai l'inserimento!


Title: Re:quello che vuole il prof ...
Post by: leviadragon on 21-04-2009, 10:34:39
grazie viviana per lo specchietto ;) mi hai chiarito qualche dubbio


Title: Re:quello che vuole il prof ...
Post by: Vivynz on 21-04-2009, 10:37:22
grazie viviana per lo specchietto ;) mi hai chiarito qualche dubbio
ci conosciamo?? :[Emoticon] Asd: :[Emoticon] Asd: cmq di niente se può servire anche ad altri oltre che a me che ben venga  .wink


Title: Re:quello che vuole il prof ...
Post by: Twitch on 21-04-2009, 11:31:03
Grazie mille Vivynz!!! Il tuo schemino mi è stato di grande aiuto!!!  :pray


Title: Re:quello che vuole il prof ...
Post by: Vivynz on 21-04-2009, 11:32:06
 :-OK


Title: Re:quello che vuole il prof ...
Post by: rox on 21-04-2009, 15:35:36
ok grazie.quindi non si può usare sempre il writeObject dobbiamo utilizzare di volta in volta il metodo della classe per scrivere su file.