 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Ra1n Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Parsing di un file di testo |
|
|
Ok forse la domanda è banale, ma con java non ci vado ancora molto daccordo,
dovrei leggere da un file di testo una sequenza di caratteri (più
precisamente numeri interi) che poi dovrei infilare in una matrice
Mi sono scontrato con un problemino, se io apro il file in questa maniera:
BufferedReader mapInput = new BufferedReader(new FileReader("map.txt"));
il metodo mapInput.read() mi restituisce il valore del carattere in byte :-/
il metodo readLine() invece mi restituisce correttamente una stringa,
che però manca del primo carattere della riga!
Dove sbaglio?
Luca |
|
| Back to top |
|
 |
Andrea Bat... Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
| Quote: | Ok forse la domanda è banale, ma con java non ci vado ancora molto
daccordo,
dovrei leggere da un file di testo una sequenza di caratteri (più
precisamente numeri interi) che poi dovrei infilare in una matrice
Mi sono scontrato con un problemino, se io apro il file in questa maniera:
BufferedReader mapInput = new BufferedReader(new FileReader("map.txt"));
il metodo mapInput.read() mi restituisce il valore del carattere in byte
:-/
il metodo readLine() invece mi restituisce correttamente una stringa,
che però manca del primo carattere della riga!
Dove sbaglio?
|
mi sembra strano che ti manchi il primo carattere, ma è possibile se prima
di readLine() hai per esempio fatto read(), allora il primo carattere è
stato mangiato dalla read()
ciao |
|
| Back to top |
|
 |
Ra1n Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
Andrea Bat... ha scritto:
| Quote: | Ok forse la domanda è banale, ma con java non ci vado ancora molto
daccordo,
dovrei leggere da un file di testo una sequenza di caratteri (più
precisamente numeri interi) che poi dovrei infilare in una matrice
Mi sono scontrato con un problemino, se io apro il file in questa maniera:
BufferedReader mapInput = new BufferedReader(new FileReader("map.txt"));
il metodo mapInput.read() mi restituisce il valore del carattere in byte
:-/
il metodo readLine() invece mi restituisce correttamente una stringa,
che però manca del primo carattere della riga!
Dove sbaglio?
mi sembra strano che ti manchi il primo carattere, ma è possibile se prima
di readLine() hai per esempio fatto read(), allora il primo carattere è
stato mangiato dalla read()
Uhmm possibile, la lettura del file di testo viene fatta in questa maniera: |
while(mapInput.read()!=-1)
{
System.out.print(mapInput.read());
}
di fatto nel corpo del while viene eseguita la read() per vedere se il
file è terminato, può essere quello? modi per aggirare il problema?
(in questo caso potrei leggere l'intera riga come stringa, analizzarla
char per char e buttare il risultato in ogni riga della matrice)
Luca |
|
| Back to top |
|
 |
pb Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
si dovrebbe bastare una cosa del genere:
String riga = null;
while ( (riga = mapInput .readLine()) != null) {
// qua ti analizzi la riga
}
| Quote: | di fatto nel corpo del while viene eseguita la read() per vedere se il
file è terminato, può essere quello? modi per aggirare il problema?
(in questo caso potrei leggere l'intera riga come stringa, analizzarla
char per char e buttare il risultato in ogni riga della matrice)
Luca |
|
|
| Back to top |
|
 |
Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
Forse Ra1n ha ragione.
Non e' che PRIMA di chiamare la readLine() fai una read(), magari solo
per testare EOF.
Allora e' chiaro che il primo carattere te lo sei mangiato con la
read(). |
|
| Back to top |
|
 |
Ra1n Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
maurizio.cavalli (AT) gmail (DOT) com ha scritto:
| Quote: | Forse Ra1n ha ragione.
Non e' che PRIMA di chiamare la readLine() fai una read(), magari solo
per testare EOF.
Allora e' chiaro che il primo carattere te lo sei mangiato con la
read().
infatti era quello che facevo  |
Luca |
|
| Back to top |
|
 |
Ra1n Guest
|
Posted: Mon Feb 20, 2006 3:12 pm Post subject: Re: Parsing di un file di testo |
|
|
pb ha scritto:
| Quote: | si dovrebbe bastare una cosa del genere:
String riga = null;
while ( (riga = mapInput .readLine()) != null) {
// qua ti analizzi la riga
}
infatti funziona, grazie  |
String riga = null;
while ( (riga = mapInput.readLine()) != null)
{
System.out.println(riga);
}
questo stampa correttamente tutto il file, adesso posso analizzare la
stringa per estrarre i caratteri uno ad uno e buttarli nella matrice.
Grazie ancora
Luca |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|