PDA

Visualizza la versione completa : [JAVA] Lettura parola da file di testo


Neds
29-06-2005, 19:01
salve,
ho un file in formato .txt,contenente delle parole, del tipo:
parola, parola
parola parola parola

parola

come faccio a far leggere il file al programma in modo da far suddividere ogni parola in string per poi elaborarla?
provo ad usare il comando int.read ma non va(me li converte in numero) se uso il char.read mi da errore


grazie

Andrea1979
29-06-2005, 19:07
forse per il tuo scopo, ti converrebbe utilizzare un BufferedReader e leggere il file riga per riga con readLine.

Se cerchi nel forum, se n'è parlato una mezza camionata di volte.
Ciao. :ciauz:

Zalex
29-06-2005, 20:20
nn ho capito se ti serve leggere una (esattamente una)parola dal file d testo oppure leggere un tot d parole ed elaboralle separatamente.

cmq la seconda e' la cosa piu' classica.....quindi:
*leggi una riga intera dal file(ottieni una stringa con tutte le parola della riga).

*ricavi dalla stringa le varie parole...come? con StringTokenizer. per i dettagli consulta la documentazione su java.sun.com

StringTokenizer fu parte del package java.util

naturalmente non e' l'unico modo per estrarre una stringa ga una stringa....pero e' comodo. l'idea e' che tu gli dai un separatore(per esempio ' ' (spazio)) e vengono creati dei token(che nel tuo caso saranno le parole).

ciao

LeleFT
30-06-2005, 10:13
Se non vuoi utilizzare uno StrinkTokenizer puoi tranquillamente usare il metodo split() della classe String.


Ciao. :ciauz:

Neds
01-07-2005, 11:14
avevo già pensato al readLine, ma volevo evitare di creare una stringa per ogni riga e poi dividere la stringa nelle parole per elaborarle, in quanto nel file ci sono più righe, avrei preferito un codice che fosse simile allo StringTokenizer ma che non si interrompesse alla fine della riga(cioè che continuasse a leggere non tenendo conto dell'interruzione di riga)in modo che con un comando mi creo tante stringhe quante sono le parole nel file.
cmq grazie lo stesso :ciauz:

Wave
01-07-2005, 11:38
guarda se questo puo esserti utile....;

http://forum.html.it/forum/showthread.php?s=&threadid=849522&highlight=coordinate+file

ciao ciao

LeleFT
01-07-2005, 14:10
Originariamente inviato da Neds
avevo già pensato al readLine, ma volevo evitare di creare una stringa per ogni riga e poi dividere la stringa nelle parole per elaborarle, in quanto nel file ci sono più righe, avrei preferito un codice che fosse simile allo StringTokenizer ma che non si interrompesse alla fine della riga(cioè che continuasse a leggere non tenendo conto dell'interruzione di riga)in modo che con un comando mi creo tante stringhe quante sono le parole nel file.
cmq grazie lo stesso :ciauz:
Puoi sempre leggere prima tutto il file, memorizzando tutte le linee in una sola stringa e poi passare quella stringa allo StringTokenizer:


BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("file.txt") ) );

// Leggo tutto il file e memorizzo in una stringa
String linea = "";
String contenuto = "";
while ((linea = br.readLine()) != null) {
if (!linea.equals(""))
contenuto += "," + linea
}

// Ora costruisco lo StringTokenizer; separatori: virgola e spazio
StringTokenizer st = new StringTokenizer(contenuto, ", ");

// Ottengo tutte le parole
String [] parole = new String[st.countTokens()];
while (st.hasMoreTokens()) {
parole[i] = st.nextTokens();
}

Ciao. :ciauz:

Neds
01-07-2005, 16:15
Originariamente inviato da LeleFT
Puoi sempre leggere prima tutto il file, memorizzando tutte le linee in una sola stringa e poi passare quella stringa allo StringTokenizer:


BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("file.txt") ) );

// Leggo tutto il file e memorizzo in una stringa
String linea = "";
String contenuto = "";
while ((linea = br.readLine()) != null) {
if (!linea.equals(""))
contenuto += "," + linea
}

// Ora costruisco lo StringTokenizer; separatori: virgola e spazio
StringTokenizer st = new StringTokenizer(contenuto, ", ");

// Ottengo tutte le parole
String [] parole = new String[st.countTokens()];
while (st.hasMoreTokens()) {
parole[i] = st.nextTokens();
}

Ciao. :ciauz:
hai ragione, :) grazie

@wave: quel programma l'ho risolto(punti e cerchi),questo(parole) anche se è simile, non riuscivo a trovare la soluzione, ora provo i vari consigli e credo(spero) di riuscirci
:ciauz:

Loading