Precedente :: Successivo |
Autore |
Messaggio |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 10 Apr 2009 14:36 Oggetto: [Java] Conteggio righe di un file per interrompere ciclo for |
|
|
Salve utenti.
Ho fatto un piccolo programma in java, che in poche palore legge il contenuto del file utilizzando la classe BufferRead cosi impostato:
Codice: | bufferReader _file = new FileReader("nome_file.txt"); |
per leggere il contenuto di ogni righa utilizzo un ciclo for, che stampa in input una righa per ogni righa del file, ora per poter fermare il ciclo dovrei effettivamente sapere il numero di righe scritte all'interno del file, esiste qualche medodo o qualche rimedio per contare le righe all'interno del file di testo (possibilemente sempre utilizzando il bufferReader)? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 11 Apr 2009 17:31 Oggetto: |
|
|
Non ti serve sapere il numero di righe perchè se leggi riga per riga con readLine ti ritrovi null quando hai finito.
Prova un po' così:
Codice: |
...
FileReader fileReader = new FileReader("nome_file.txt");
BufferedReader fileBufereReader = new BufferedReader(fileReader );
String s;
while ((s=bfr.readLine())!=null)
{
System.out.println(s);
}
...
|
|
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 11 Apr 2009 18:05 Oggetto: |
|
|
Ok, ora provo il codice.
Cmq se io al posto del while vorrei utilizzare il for? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 11 Apr 2009 18:10 Oggetto: |
|
|
Perchè vuoi usare un ciclo for quando concettualmente devi iterare mentre hai righe e non "per il numero di righe"? |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 11 Apr 2009 18:16 Oggetto: |
|
|
Il codice funzione, vorrei sapere solamente se il codice va anche con il ciclo for |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 11 Apr 2009 18:22 Oggetto: |
|
|
Sì, puoi usare il ciclo così:
Codice: |
...
for (;(s=bfr.readLine())!=null;)
{
}
...
|
ma di fatto lo stai usando come un while.
Fare un for senza sapere quanto deve girare è un po' dura... |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 11 Apr 2009 19:12 Oggetto: |
|
|
Ok, mi interessava sapere solo se il ciclo haveva un operazione di inizializzazione e di inclemento.
cmq utilizo il while per il mio problema.
Grazie per l'aiuto. |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 11 Apr 2009 19:18 Oggetto: |
|
|
Il for in java e in c/c++ in realtà è un while riscritto.
L'uso normale e:
Codice: |
for (init;condition;alter)
|
dove in init inizializzi separate da virgole le variabili, condition è la condizione per cui il ciclo gira, l'alter è la modifica delle variabili.
Nessuna sezione è mandatory quindi può essere omessa.
Per assurdo il seguante è un ciclo for valido:
Codice: |
int x=0;
int i;
for (i=0;x!=18;--i)
{
...
++x;
...
}
|
e il ciclo termina quando x vale 18. |
|
Top |
|
 |
sevenjeak Semidio


Registrato: 04/02/08 22:05 Messaggi: 308 Residenza: Roma
|
Inviato: 12 Apr 2009 22:15 Oggetto: |
|
|
ok, ho capito.
grazie a tutti e due. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11802 Residenza: Tokelau
|
Inviato: 14 Apr 2009 11:08 Oggetto: |
|
|
sevenjeak ha scritto: | grazie a tutti e due. |
intendeva "grazie al while e al for"  |
|
Top |
|
 |
|