PDA

Visualizza la versione completa : [JAVA] Lettura di un file


cirmon
13-09-2004, 14:00
Ciao a tutti,
volevo chiedere un consiglio su come leggere un file di questo tipo:


12345,xiuwejdm,23343434,vvvvppppoooo

Grazie mille!!!

LeleFT
13-09-2004, 14:06
Cosa intendi? Non chiaro... per leggere un file ci sono diversi modi: puoi vedere il tuo file come un testo, come un insieme di byte, un insisme di oggetti Java serializzati...

Se il tuo problema leggere un file che contiene stringhe di quel tipo e ti interessa "suddividere" i campi stringa da quelli numerici, devi prima leggere la riga in una stringa (con un BufferedReader oppure un FileInputReader) e poi usare uno StringTokenizer per tokenizzare la stringa... nel tuo caso, la virgola potrebbe fare da separatore di tokens.


Ciao. :ciauz:

cirmon
13-09-2004, 14:15
Devo semplicemente leggere i valori che sono separati dalla virgola!!!

Mi faresti un esempio grazie????

LeleFT
13-09-2004, 14:24
Esempio:


try {
BufferedReader br = new BufferedReader( new FileReader("nomefile") );
String linea = br.readLine();
separaStringa(linea);
} catch (Exception e) { e.printStackTrace(); }

...

private void separaStringa(String linea) {
StringTokenizer st = new StringTokenizer(linea, ",");
int i = 0;
while (st.hasMoreTokens()) {
System.out.println("Token numero " + i + ": " + st.nextToken());
i++;
}
}

Ciao. :ciauz:

cirmon
13-09-2004, 14:51
Se mi servisse invece prendere solo il primo ed il terzo valore come potrei fare? Tenendo presente che il file lunghetto e che le righe non sono sempre della stessa lunghezza!!!!

Es.:

xxxx;12312312;445454545;bvnfdgfg
11111;4445kjgkr;mvnvbv;4534534534

etc. etc

pippo75
13-09-2004, 16:48
bh, ti ha pur risposto: i ltokenizer ti spezza la stringa in base al carattere che specifichi, poi tocca a te prendere l'n-sima sottostringa...
ovviamente considerando che l'n-sima sottostringa potrebbe anche non esistere

:ciauz:

cirmon
13-09-2004, 17:33
mi fai un esempio?

anx721
13-09-2004, 18:25
Puoi anche fare cosi:

String[] strings = linea.split(",");

a questo punto strings[0] e strings[2] contenono rispettivamente la prima e la terza sottostringa.

cirmon
14-09-2004, 09:09
La funzione "SPLIT" non funziona in java!!!!!
Hai qualche suggerimento?

LeleFT
14-09-2004, 09:23
Il metodo split c' dalla versione 1.4 della JDK.
Se proprio non riesci con il metodo split, dovrebbe andare bene questo codice:


try {
BufferedReader br = new BufferedReader( new FileReader("nomefile") );
String linea = br.readLine();
String [] s = separaStringa(linea);
} catch (Exception e) { e.printStackTrace(); }

...

private String[] separaStringa(String linea) {
StringTokenizer st = new StringTokenizer(linea, ",");
String [] result = new String[st.countTokens()];
int i = 0;
while (st.hasMoreTokens()) {
result[i] = st.nextToken();
i++;
}
return result;
}

A questo punto, nell'array s hai tutti i tokens della stringa. Basta che prendi il primo ed il terzo (se sono quelli che ti servono).


Ciao. :ciauz:

Loading