PDA

View Full Version : [JAVA] Lettura riga per riga di un file


Oberon80
06-09-2005, 11:39
Salve,

sono agli inizi con java e quindi ho ancora qualche difficoltà.

Vorrei sapere come posso fare a leggere un file di testo.

In particolare la mia necessità è di leggere informazioni relative ad un elenco di avvenimenti.
Avevo pensato di organizzare il file in modo che ogni riga corrisponde ad un evento ed ogni "campo" è un particolare valore dell'evento. Per distinguere un campo da un altro userei un separatore (ad esempio i ":")

Esempio file di testo

Pippo:6:18
Pluto:4:27
Paperino:54:17

Potete darmi una mano?!

Il problema maggiore è leggere il file riga per riga, poi cerco di cavarmela da solo.

PS: Posso poi trattare ogni riga come un vettore vero?!

cisc
06-09-2005, 12:05
puoi usare un BufferedReader:

BufferedReader reader=new BufferedReader (new FilerReader (file));

dove file è la stringa con il percorso+nome del file

poi su reader puoi applicare il metodo readLine(), che ti restituiosce la riga in una stringa o null se il file è finito.

Poi puoi "spezzettare" la riga con uno StringTokenizer:

StringTokenizer st=new StringTokenizer (riga,":");

dove riga è la stringa letta con readLine()

Oberon80
06-09-2005, 13:28
puoi usare un BufferedReader:

BufferedReader reader=new BufferedReader (new FilerReader (file));

dove file è la stringa con il percorso+nome del file

poi su reader puoi applicare il metodo readLine(), che ti restituiosce la riga in una stringa o null se il file è finito.

Poi puoi "spezzettare" la riga con uno StringTokenizer:

StringTokenizer st=new StringTokenizer (riga,":");

dove riga è la stringa letta con readLine()

Grazie provo subito, ma devo includere qualche package?

pinok
06-09-2005, 14:27
Grazie provo subito, ma devo includere qualche package?
Prova a guardare il mio esempio in questo thread http://www.hwupgrade.it/forum/showthread.php?t=1006688

Per i files ovviamente devi includere java.io.*
Se usi lo StringTokenizer java.util.*;

Oberon80
06-09-2005, 14:43
Ho fatto una cosa del genere ed ha funzionato.

try
{
BufferedReader reader = new BufferedReader(new FileReader(nomefile));
String linea;
while ( (linea = reader.readLine()) != null)
{
/* Divisione in tokens della linea letta */
StringTokenizer st = new StringTokenizer(linea,":");
while (st.hasMoreTokens())
{
System.out.println(st.nextToken());
}
}
}
catch(Exception e)
{
e.printStackTrace();
}

EDIT:

Risolto grazie, ora mi dedico ad una piccola interfaccia grafica