Sto cercando di imparare qualcosina sulla gestione dei file di testo, ma tra tutte le classi, i metodi e le eccezioni trovate su libri e nel web ho soltanto un gran confusione per la testa.
Ho visto qualcosina della classe PrintWriter, ma non va bene perchè ogni volta parte da un file vuoto (perdendo i dati precedentemente salvati); ho visto la classe Scanner, comoda per leggere ma non per scrivere; ho visto BufferedReader, ma non permette di scrivere; e infine ho visto la classe RandomAccessFile.
Finalmente qualcosa che sembra fare al caso mio (suppongo che sia infinitamente lenta rispetto ad altre soluzioni ma non mi importa), questa classe mi permette di leggere e scrivere a mia discrezione... ottimo!
Peccato che mi stia dando non pochi problemi.
In pratica questa classe gestisce i file come array di byte con un puntatore che si sposta come una specie di cursore.
Se mi limito a leggere così non c'è nessun problema:
ma se devo prima scrivere sul file per poi leggere ciò che ho scritto cominciano le rogne:codice:try { while (rafStream.getFilePointer() < rafStream.length() ) { System.out.println( rafStream.readLine() ); } } catch // ....
mi legge un unico valore e poi genera un'eccezione.codice:// per scrivere un double sul file rafStream.writeDouble(mioDouble); // eseguito ad esempio 10 volte // per leggere while(rafStream.getFilePointer() < rafStream.length() ) { System.out.println(rafStream.readDouble() ); }
Idem se scrivo su file con writeUTF e poi leggo con readUTF e converto in double con parseDouble.
Che sto sbagliando????
grazie in anticipo...