|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2001
Messaggi: 87
|
[Java] leggere dati da un file
ciao!
ho un file di testo (stream.txt) e devo prelevare stringhe di caratteri ( riga per riga) da questo file , e memorizzare ciò che è stato letto variabili di tipo stringa....mi dite come posso fare?.. ciao e grazie! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Firenze
Messaggi: 630
|
Io ho usato questa funzione per copiare le righe di un file di testo in un array di stringhe. L'ho usata per una pagina JSP, comunque dovresti poterci estrarre qualcosa di utile... spero.
public void readfile(String f,String[] pstr,int[] pnum) { String buf; int i = 0; try { BufferedReader file = new BufferedReader(new FileReader(f)); do { if ((buf = file.readLine())!=null) { pstr[i] = new String(buf); i++; } } while (buf != null); pnum[0] = i; file.close(); } catch(IOException e) { System.out.println("Could not read from file " + "'" + f + "'"); } }
__________________
---> Lombardp CSS Certified Expert (Master Level) at Experts-Exchange Proud user of LITHIUM forum : CPU technology Webmaster of SEVEN-SEGMENTS : Elettronica per modellismo |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Messaggi: 87
|
f è il nome del file...ma come lo hai dichiarato?
grazie, comunque |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2001
Messaggi: 87
|
dimenticavo...il file da cui devo leggere è un file di testo..
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2001
Messaggi: 87
|
ce l'ho fatta!!!
anche grazie al tuo esempio!!! grazie, ciao!!!!!!!!! |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Nov 2007
Messaggi: 2
|
siccome interessa pure a me leggere e immagazzinare stringhe in variabili
non puoi scrivere come hai fatto tu il codice?? grazie |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Ecco la mia proposta:
Codice:
public String[] readFromFile(String nomeFile) throws IOException {
String[] result = null;
if (nomeFile != null) {
File f = new File(nomeFile);
BufferedReader reader = null;
if (f.exists()) {
try {
reader = new BufferedReader(new FileInputStream(f));
ArrayList<String> tmpList = new ArrayList()<String>;
String tmp = null;
while((tmp = reader.readLine()) != null) {
tmpList.add(tmp);
}
result = new String[tmpList.size()];
tmpList.toArray(result);
} finally {
if(reader != null)
reader.close();
}
}
}
return result;
}
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
|
|
|
|
|
#8 |
|
Junior Member
Iscritto dal: Nov 2007
Messaggi: 2
|
we....
grazie della risposta.... siccome sono un noob....dovrò analizzare per benino quel codice che mi hai scritto... certo che se il codice fosse commentato.....hehe... cmq..grazie.. ....ho iniziato ad interessarmi alla programmazione perchè ho un desiderio di creare un piccolo programma che tenga la classifica del mi videogame preferito....chissà se mai ci riuscirò.... ps. il gioco è Worms Armageddon.... ciao molte grazie ancora... a presto,,,, Ultima modifica di atrx00 : 15-11-2007 alle 03:11. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
|
Ecco una versione del codice con un paio di commenti:
Codice:
public String[] readFromFile(String nomeFile) throws IOException {
// Qui dichiaro in anticipo la variabile che ritornerò, e la pongo pari a null;
// finchè non ho completato tutto correttamente, il valore non viene modificato
// e quindi se succede qualcosa di male ritornerò null.
String[] result = null;
// Altrimenti non ha senso proseguire
if (nomeFile != null) {
File f = new File(nomeFile);
BufferedReader reader = null;
// Altrimenti non ha senso proseguire: a dire la verità, si poteva anche evitare:
// bastava lasciare andare il codice, se il file non esisteva avrebbe lanciato
// una "FileNotFoundException", era sufficiente aggiungerla nella clausola "throws"
// nella dichiarazione del metodo
if (f.exists()) {
try {
// I prossimi metodi posson fallire (impossibile accedere al file, eccetera):
// se così fosse, lancerebbero una eccezione, che verrebbe propagata al chiamante
// (clausola "throws" all'inizio)
reader = new BufferedReader(new FileInputStream(f));
// Già che ci siamo usiamo i generics: è una ArrayList,
// cioè una lista dinamica, con dimensione libera.
ArrayList<String> tmpList = new ArrayList()<String>;
String tmp = null;
// Adesso ciclo riga per riga finchè non ho finito
while((tmp = reader.readLine()) != null) {
tmpList.add(tmp);
}
// Questo codice converte la lista dinamica in un array a dimensione fissa:
// adesso settiamo result (viene fatto solo qui)
result = new String[tmpList.size()];
tmpList.toArray(result);
} finally {
// Qualsiasi cosa succeda dentro il blocco try, anche un eccezione,
// devo eseguire il codice che segue. Questo mi garantisce che comunque
// il file aperto verrà chiuso, evitando di lasciare file allocati in giro.
if(reader != null)
reader.close();
}
}
}
// Finalmente
return result;
}
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Codice:
Scanner sc = new Scanner( file );
while( sc.hasNextLine() ) {
// qui leggi riga per riga tutto il file (\n escluso, se non sbaglio)
... = sc.nextLine();
}
__________________
|Java Base| |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:04.











|








