View Full Version : [Java] file di testo
Ciao a tutti...
ho un file di testo con delle parole che devo inserire in un vettore.
Il file di testo è composto così:
a
abbi
abbia
abbiamo
abbiano
abbiate
....
il codice Java che esegue l'inserimento nel vettore è così:
String file="c:\\ita.txt";
File f = new File(file);
BufferedReader d = new BufferedReader(new FileReader(f));
String token="";
while((token = d.readLine())!=null)
{
if (!token.equalsIgnoreCase("\n"))
{
this.words.add(token.trim().toUpperCase());
System.out.println(token);
}
}
d.close();
il problema è che il file viene letto in maniera errata: il System.out presente nel codice mi stampa a video il seguente risultato :
*a*
*a*b*b*i
*a*b*b*i*a
.....
dove il simbolo * sta per un 'quadratino' del quale con conosco il significato
Sapete come pulire queste stringhe in modo da inserire nel mio vettore esattamente il contenuto del file?
ciao e tante grazie
nessuno mi sa aiutare?
il tuo codice è corretto, sei sicuro che il problema non sia nel file di testo?
ti invio il file di testo così puoi controllarlo.
grazie
infatti non è un file di testo.
guarda come lo vedo:
http://utenti.lycos.it/kingv/window.gif
franksisca
25-06-2005, 20:40
Non credo che sia quello il problem, prova, dove metti "\n" a fare cosi....+"\r\n";
e dimmi cosa succede, credo che risolverai immediatamente. :D
ho scritto così
..if (!token.equalsIgnoreCase("\r\n"))...
ma non ho risolto niente
Falcon_DAoC
25-06-2005, 22:03
ti invio il file di testo così puoi controllarlo.
grazie
Io ho aperto il file e mi sembra corretto... :what:
....
a
abbi
abbia
abbiamo
abbiano
abbiate
accidenti
acciocché
accipicchia
ad
affinché
agli
ah
ahi
ahimè
ai
al
alalà
alcun
alcuna
alcunché
....
uffa....
come posso risolvere questo problema?
import java.io.*;
import java.util.*;
public class Read {
public static void main(String[] args) {
String file = "percorso del file";
Vector vec = new Vector();
try
{
BufferedReader filebuf = new BufferedReader(new FileReader(file));
String nextStr = filebuf.readLine(); // legge una riga del file
while (nextStr != null)
{
vec.add(nextStr);
nextStr = filebuf.readLine(); // legge la prossima riga
}
filebuf.close(); // chiude il file
}
catch(Exception e)
{
System.out.println("eccezione" + e);
}
for (int i = 0; i < vec.size(); i++)
{
System.out.println(vec.get(i));
}
}
ho fatto un test scrivendo questo semplice programma e funziona tutto bene, quindi non dovrebbe essere un problema di file
Ho eseguito il tuo codice e ottengo questo risultato...
t o '
t o t
t r a
t r a c
t r a n n e
t r a n s e a t
...
u n d i c e s i m o
u n d i c i
u n d i c i m i l a
u n e
u n i
...
v e n t i n o v e s i m o
v e n t i q u a t t r e s i m o
v e n t i q u a t t r o
v e n t i s e i
v e n t i s e i e s i m o
v e n t i s e t t e
....
v u o i
v u o l e
z i t t o
...
come puoi vedere ci sono spazi bianchi tra tutti i caratteri.
Ho corretto il tuo codice:
import java.io.*;
import java.util.*;
public class prova {
public static void main(String[] args) {
String file = "c:\\ita.txt";
Vector vec = new Vector();
try
{
BufferedReader filebuf = new BufferedReader(new FileReader(file));
String nextStr = filebuf.readLine(); // legge una riga del file
while (nextStr != null)
{
nextStr = filebuf.readLine(); // legge la prossima riga
StringTokenizer st = new StringTokenizer(nextStr," ");
nextStr="";
while (st.hasMoreTokens()) nextStr+=st.nextToken();
vec.add(nextStr);
}
filebuf.close(); // chiude il file
}
catch(Exception e)
{
System.out.println("eccezione" + e);
}
for (int i = 0; i < vec.size(); i++)
{
System.out.println(vec.get(i));
}
}
}
ma non ho risolto niente...
come si fa?
forse il problema è che il file è codificato in Unicode; se lo apri con Blocco Note come lo vedi?
ho verificato: il file è codificato in Unicode; aprilo con Blocco Note e risalvalo come ANSI.
guarda come sono generoso, te l'ho convertito io :D
ti ringrazio
ora funziona
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.