AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Lettura da file

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian)
View previous topic :: View next topic  
Author Message
Mel
Guest





PostPosted: Sun Nov 28, 2004 9:54 am    Post subject: Lettura da file Reply with quote



Salve,
è la prima volta che scrivo in questo newsgroup. Il problema che
mi si è presentato è il seguente:
devo leggere un file di testo in cui ci sono 3 float sulla prima
riga e devo quindi memorizzarli in un array. Seguo un libro a
livello didattico, e finora sono riuscito a fare lo Stream di
caratteri con il seguente codice:

import java.io.*;

public class LetturaTxt{

public static void main(String args[]){
FileReader r =null;
try{
r= new FileReader(args[0]);

}
catch(FileNotFoundException e){
System.out.println("File non trovato");
System.exit(1);
}

try{
int n=0, x=r.read();
while(x>=0){
char ch=(char) x;
System.out.println(""+ch);
n++;
x=r.read();
}
System.out.println("nTotale caratteri: "+n);
}
catch(IOException ex){
System.out.println("errore di input");
System.exit(2);
}
}

}

In questo modo però leggo un carattere alla volta e diciamo che
non riesco a dare "significato" ai float che mi serve
memorizzare.

1)Sarebbe meglio fare lo Stream di Byte o non c'è differenza?
2)Come faccio a risolvere il problema che vi ho spiegato in alto?
--
Inviato da Virgilio http://newsgroup.virgilio.it
...un servizio di news via web con in piu' l'antispam
Back to top
Blood
Guest





PostPosted: Sun Nov 28, 2004 10:00 pm    Post subject: Re: Lettura da file Reply with quote



Quote:
non riesco a dare "significato" ai float che mi serve
memorizzare.

Cosa intendi per dare "significato"??


Blood



Back to top
Mel
Guest





PostPosted: Sun Nov 28, 2004 11:06 pm    Post subject: Re: Lettura da file Reply with quote



Blood ha scritto:
Quote:
non riesco a dare "significato" ai float che mi
serve
memorizzare.

Cosa intendi per dare "significato"??

Blood

Esempio semplice: ho un file con 3 numeri interi 10 150 e 300 (a
proposito, un file txt con codifica Unicode potrebbe andare
bene?) e voglio che il mio programma li legga e li memeorizzi su
delle variabili di tipo int, meglio ancora su un array, fine.

Oggi pomeriggio ho continuato le mie ricerche ed ho trovato che
a caso mio andrebbe il DataInputStream, ma ho provato ad
utilizzarlo e mi legge delle cose senza senso.

Grazie per la risposta

Mel
--
Inviato da Virgilio http://newsgroup.virgilio.it
...un servizio di news via web con in piu' l'antispam

Back to top
Blood
Guest





PostPosted: Mon Nov 29, 2004 1:32 pm    Post subject: Re: Lettura da file Reply with quote

Quote:
a caso mio andrebbe il DataInputStream, ma ho provato ad
utilizzarlo e mi legge delle cose senza senso.

Forse perchè tu non hai salvato degli int con un DataOutputStream ma hai
scritto solamente dei numeri in un txt, quindi vengono visti come
stringhe...questa è la mia considerazione, magari è sbagliata;-)

Blood



Back to top
Blood
Guest





PostPosted: Mon Nov 29, 2004 1:41 pm    Post subject: Re: Lettura da file Reply with quote

Prova a guardare qui.

http://www.di.unipi.it/~monta/LSD-02/LSD/Eccezioni/IOfiles/main.html

Blood


Back to top
Mel
Guest





PostPosted: Mon Nov 29, 2004 4:02 pm    Post subject: Re: Lettura da file Reply with quote

Grazie mille, hai risolto il 70% dei miei problemi.

Blood ha scritto:
Quote:
Prova a guardare qui.

http://www.di.unipi.it/~monta/LSD-02/LSD/Eccezioni/IOf
iles/main.html

Blood


--

Inviato da Virgilio http://newsgroup.virgilio.it
...un servizio di news via web con in piu' l'antispam

Back to top
matish
Guest





PostPosted: Tue Nov 30, 2004 1:03 am    Post subject: Re: Lettura da file Reply with quote

Stavo sfogliando le pagine di una "rivista specializzata" quando Mel mi ha
interrotto con la ridicola scusa:


Quote:
devo leggere un file di testo in cui ci sono 3 float sulla prima
riga e devo quindi memorizzarli in un array.

Come li distingui? Diciamo che tra ogni coppia di numeri c'é uno spazio,
allora fai così:

BufferedReader reader = new BufferedReader(new FileReader(<il tuo file>));

String linea;
while((linea = reader.readLine()) != null) {
//leggi il file a righe
StringTokenizer st = new StringTokenizer(linea," ");
//restituisce i pezzi di stringa tra due spazi
while(st.hasMoreToken()) {
float num = Float.parseFloat(se.nextToken());
/* qui fai quello che devi fare col numero, ad esempio
lo metti in un array */
}
}

Ok? Il concetto è che leggi il file per righe e poi spezzetti ogni riga nei
numeri.
Se non ti importa sapere in che riga sta ogni numero puoi anche leggere
tutto il file, metterlo in una stringa e passare questa allo
stringTokenizer. In fine, se non vuoi usare stringTokenizer perché
programmi da poco e non vuoi incasinarti puoi tranquillamente fare una cosa
tipo:

int ultimo = 0, pos;
while( (pos = linea.indexOf(" ",ultimo)) >= 0) {
float num = Float.parseFloat(linea.substring(ultimo,pos));
//fai quello che devi fare col numero

ultimo = pos+1;
}

Ciao
Matteo
--
chi sono e soprattutto chi non sono:
http://www.ilnomedeldominio.it

un piccolo programma per studenti universitari:
http://inutility.ilnomedeldominio.it/imsv/

Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.