PDA

View Full Version : [Java]creare un oggetto e assegnarli i dati prelevati da file


zyzyo91
15-11-2009, 22:38
ciao mi servirebbe urgente una mano ecco il mio problema,vorrei creare un programma che legga dei dati in input da file di testo e inserirli nelle proprietà dell'oggetto ecco il codice:
In pratica questo funziona alla grande direi, la classe Console è abbreviata perchè noi usiamo dei metodi già preimpostati che si trovano nel package it.unibas.utilita.Console;
Comunque quello che interessa a me è il fatto che io non devo leggere i dati da tastiera....il nome,il cognome e la matricola,ma voglio farlo da file come faccio?vi prego aiutatemi è importantissimo!!!


___________________
della classe Principale
___________________

package studente;
import it.unibas.utilita.Console;

public class Principale{


public void esegui(){
int scelta;
Studente studente = null;
boolean continua = true;
while(continua){
scelta = schermoMenu();
if(scelta == 0){continua = false;}
if(scelta == 1){studente = schermoLeggiDati();}
if(scelta == 2){this.schermoStampaDati(studente);}
}
System.out.println("Arrivederci");
}


private int schermoMenu(){
System.out.println("Digita 0 per uscire");
System.out.println("Digita 1 per leggere i dati dello studente");
System.out.println("Digita 2 per stampare i dati dello studente");
int scelta = Console.leggiIntero();
return scelta;
}

private Studente schermoLeggiDati(){
System.out.println("Dammi il nome");
String nome = Console.leggiStringa();
System.out.println("Dammi il cognome");
String conome = Console.leggiStringa();
System.out.println("Dammi la matricola");
int matricola = Console.leggiIntero();
Studente studente = new Studente(nome,cognome,matricola);
return studente;
}

private void schermoStampaDati(Studente studente){
System.out.println(studente);
}


public static void main(String[] args){
Principale p = new Principale();
p.esegui();
}


}



___________________
della classe Studente:
___________________
package studente;

public class Studente{

private String nome;
private String cognome;
private int matricola;


public Studente(String nome,String cognome,int matricola){
this.nome = nome;
this.cognome = cognome;
this.matricola = matricola;
}

public void setNome(String nome){
this.nome = nome;
}

public void setCognome(String cognome){
this.cognome = cognome;
}

public void setMatricola(int matricola){
this.matricola = matricola;
}

public String getNome(){
return this.nome;
}

public String getCognome(){
return this.cognome;
}

public int getMatricola(){
return this.matricola;
}

public String toString(){
String risultato = "";
risultato+= "Nome: " + this.nome + "\n";
risultato+= "Cognome: " + this.cognome + "\n";
risultato+= "Matricola: " + this.matricola;
return risultato;
}

}

fero86
16-11-2009, 02:05
se non é obbligatorio che i dati vengano letti da un file di testo usa la serializzazione:la classe Studente deve implementare l'interfaccia Serializable e a quel punto puoi usare i metodi ObjectOutputStream.writeObject e ObjectInputStream.readObject.
se invece é obbligatorio usare dei file di testo allora usa le Properties: http://java.sun.com/javase/6/docs/api/index.html?java/util/Properties.html

zyzyo91
16-11-2009, 17:20
grazie molto gentile...ma potrsti farmi un esempio sul mio codice così apisco meglio per favore :D tanto non è molta roba....no niente serializzazione dovrei usare un BufferedReader in pratica....

zyzyo91
16-11-2009, 20:54
dai raga per favore se qualcuno mi può aiutare perchè ho l'esame a giorni....gliene sarò grato

cioè fare una cosa del genere:

package letturaProva;
import java.io.*;

public class Leggi{


public static void main(String[] args)throws IOException{

FileReader f = new FileReader("letturaProva/dati.txt");
BufferedReader in = new BufferedReader(f);
String line = in.readLine();

while (line!=null){
System.out.println(line);
line = in.readLine();
}
f.close();

}
}

in pratica questo codice ora legge da file correttamente e stampa a video, tuttavia io voglio implementare una cose del genere al mio codice facendo in modo che prelevi da file i vari nome,cognome,matricola dello Studente ecc....

fero86
16-11-2009, 20:59
no niente serializzazione dovrei usare un BufferedReader in pratica.... folle :asd:
sei obbligato? l'esempio di parsing col BufferedReader io non te lo scrivo :ciapet:
se non sei obbligato guardati quella classe Properties che ti ho indicato.