|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
[JAVA] Salvataggio e Caricamento FILE
Ciao a tutti.Non riesco a salvare il mio archivio in un file.Mi dite i metodi da utilizzare per salvare su file e caricare un file?
In [C] utilizzavo rispettivamente fprintf( ) e fscanf( ). In java???? Grazie
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Dipende da cosa vuoi dalvare nel file e da cosa vuoi leggere.
Se si tratta di semplici stringhe datti un occhio a PrintWriter per salvare e BufferedReader per leggere.
__________________
iMac 27" 5K |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Quote:
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Codice:
String filename = "myTextFile.txt";
// crea un print writer, un oggetto che ti permete di stampare in un file con un
// buffer di supporto e in modo formattato
PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(myTextFile.txt)));
// stampa una riga di testo nel file
writer.println("Questo è il file di TeX-mAn!");
// chiudere il file
writer.close();
Altrimentoi consulta i Javadocs ufficilai online della Sun. P.S.: il codice qui sopra va racchiuso in un blocco try-catch perchè alcuni metodi di PrintWriter possono lanciare una IOException, che va catturata e gestita oppure rilanciata a sua volta al chiamante dal metodo che fa uso del PrintWriter. Codice:
try
{
//... usa il PrintWriter
}
catch (IOException e)
{
//... gestire eventuale eccezione
}
finally
{
// in ogni caso chiudere il file writer
writer.close();
}
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
Mentre per leggere tutte le righe del tuo file:
Codice:
try{
BufferedReader reader = new BufferedReader(new FileReader(fileName));
for(String line = reader.readLine(); line != null; line = reader.readLine())
System.out.println(line);
reader.close();
}catch(Exception e){
e.printStackTrace();
}
__________________
iMac 27" 5K |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Grazie mille.
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Il salvataggi funziona alla perfezione.Per quanto riguarda il caricamento,utilizzando questo procedimento stampo ciò che è presente nel file,mentre io voglio caricare ciò che cè nel file in memoria.Ad esempio voglio ricaricare una lista di persone.Come faccio???
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Semplice, nel ciclo for del codice postato da Don[ITA]:
Codice:
try{
BufferedReader reader = new BufferedReader(new FileReader(fileName));
for(String line = reader.readLine(); line != null; line = reader.readLine())
System.out.println(line);
reader.close();
}catch(Exception e){
e.printStackTrace();
}
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Quote:
Grazie.Ora è tutto chiaro
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
NOOOOOOO!!!HO ANCORA DEI PROBLEMI SUL CARICAMENTO!!!
Allora scrivo il codice e quello che devo fare. Io ho un archivio di album gestito tramite la collection Vector<Album> Salvo l'archivio su file utilizzando l'oggetto PrintWriter che mi avete detto. Fino a qui tutto ok...Quando vado a caricare vorrei che gli album contenuti nel file vengano reinseriti nel Vector<Album> La funzione dovrebbe essere così: Vector<Album> CaricamentoFile (Vector<Album> v) { ..... } Ora come faccio ad inserire nel vettore i dati di ogni album presente nell'archivio!!!!?!?!? Gli attributi dell'album sono tipo,autore,titolo,casaDiscografica,numeroCanzoni,Canzoni. Spero in una soluzione...Sono in crisi
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Dec 2005
Città: Siracusa / Pisa
Messaggi: 194
|
Anzichè scrivere stringhe in un file di testo, perchè non usare writeObject e readObject? In questo modo scrivi e leggi oggetti interi in un file, ma pensa a tutto Java
Guarda la documentazione di ObjectInputStream e ObjectOutputStream http://java.sun.com/javase/6/docs/ap...putStream.html http://java.sun.com/javase/6/docs/ap...putStream.html Ultima modifica di Leo_SR : 07-07-2008 alle 09:28. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
La soluzione di leo è quella che garba di più secondo me
Ti prendi il tuo Vector di album e lo salvi con writeObject(Object o) della classe ObjectOutputStream. Quando devi recuperare il tuo "database" usi readObject() di ObjectInputStream. Veloce e indolore Unica cosa...perchè usi Vector? è un programma multi thread? se non lo è ti conviene usare ArrayList che è più veloce Ciauz
__________________
iMac 27" 5K |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Quote:
Codice:
void SalvaSuFile(Vectro<Album> v)
{
FileOutputStream fos=new FileOutputStream("Arichivio.txt);
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(v);
oos.close();
}
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; Ultima modifica di TeX-mAn : 08-07-2008 alle 11:01. |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
|
La tua classe Album deve implementare l'interfaccia Serializable
__________________
iMac 27" 5K |
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Jun 2006
Messaggi: 371
|
Quote:
__________________
Processore Intel Core 2 Duo E6600 ; 2 Gb di RAM DDR2 ; Scheda video RADEON X1950 XTX da 512 mb ; |
|
|
|
|
|
|
#16 |
|
Member
Iscritto dal: Dec 2005
Città: Siracusa / Pisa
Messaggi: 194
|
Le classi degli oggetti che serializzi devono implementare *tutte* l'interfaccia Serializable. Quindi, se dentro la classe Album hai un campo di classe Artista, anche la classe Artista deve implementare Serializable. E così via a cascata
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:36.




















