Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[JAVA] lettura da file formattata

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[JAVA] lettura da file formattata

Messaggioda mciasco » dom ott 02, 2005 3:45 pm

Salve,

sto cercando di leggere da un file delle stringhe in un formato preciso. L'unica cosa che ho trovato sono PrintWriter per scrivere su un file e Reader per leggere. Però la lettura non è formattata...perciò se nel file voglio leggere una stringa del tipo:

[valore x] = 100

e di questo voglio leggere solo il valore 100 per assegnarlo ad una variabile x non posso farlo!

in C ad esempio usavo le funzioni:
- fscanf per leggere in maniera formattata da file
- fprintf per scrivere in maniera formattata da file

idee?

grazie
Avatar utente
mciasco
Senior Member
Senior Member
 
Messaggi: 151
Iscritto il: ven apr 09, 2004 2:15 am

Messaggioda morskott » mer ott 05, 2005 12:27 am

io ho sempre usato PrintWriter per scrivere sui flussi di output e BufferedReader per leggere da Input, prova così
Avatar utente
morskott
Aficionado
Aficionado
 
Messaggi: 147
Iscritto il: lun nov 03, 2003 7:40 pm

Messaggioda mciasco » sab ott 08, 2005 12:13 pm

si, in pratica ho capito questo:

PrinWriter permette di scrivere in maniera formattata su un file. Ad esempio:

File file = new File("miofile.txt");
OutputStream out = new FileOutputStram(file);
PrintWriter pw = new PrintWriter(out);

pw.println("stringa");---> scrive una stringa
pw.println(new Double(Double.parseDouble("12.33333")))); ---> scrive un double

ecc..

invece per leggere in maniera formattata si usa come dicevi tu il BufferedReader su un file. Questo ha il metodo readLine() che legge una riga intera da file.
Poi bisogna parsare la linea con matches() (espress. regolari) o split() e fare quello che si vuole...un po' macchinoso rispetto al C ma non si può fare di meglio...sembra!

grazie
Avatar utente
mciasco
Senior Member
Senior Member
 
Messaggi: 151
Iscritto il: ven apr 09, 2004 2:15 am

Messaggioda morskott » dom ott 09, 2005 3:18 pm

mciasco ha scritto:File file = new File("miofile.txt");
OutputStream out = new FileOutputStram(file);
PrintWriter pw = new PrintWriter(out);

si fa prima con
Codice: Seleziona tutto
FileWriter fw=new FileWriter("mioFile");
PrintWriter pw=new PrintWriter(fw);

pw.println("stringa");---> scrive una stringa
pw.println(new Double(Double.parseDouble("12.33333")))); ---> scrive un double

per la scrittura di double basta che fai
Codice: Seleziona tutto
pw.println("12345432.232");

e poi quando lo vai a leggere fai un parseDouble di quello che hai letto
invece per leggere in maniera formattata si usa come dicevi tu il BufferedReader su un file. Questo ha il metodo readLine() che legge una riga intera da file.
Poi bisogna parsare la linea con matches() (espress. regolari) o split() e fare quello che si vuole...un po' macchinoso rispetto al C ma non si può fare di meglio...sembra!

grazie

Con la readLine() ti leggi la riga e per farne il parsin si usa uno StringTokenizer
Codice: Seleziona tutto
String s=br.readLine();
StringTokenizer st=new StringTokenizer(s,"il delimitatore");
, lo StringTokenizer ha metodi
Codice: Seleziona tutto
nextToken()
che ti restituisce la prossima "parte" della stringa e
Codice: Seleziona tutto
hasMoreTokens()
che restituisce se ci sono altre "parti", per esempio se la stringa fosse "la stringa di prova" e mettessi come delimitatore lo spazio come primo token ti darebbe "la", come secondo "stringa", come terzo "di" e come quarto "prova"; capito?
Avatar utente
morskott
Aficionado
Aficionado
 
Messaggi: 147
Iscritto il: lun nov 03, 2003 7:40 pm


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising