![]() ![]() |
|
Nei programmi sviluppati sino ad oggi abbiamo
usato
Java fornisce classi e metodi per scrivere e leggere dati da files (nel package java.io [locale, Medialab, Sun]). I dati possono essere memorizzati in un file in formato
Queste classi gestiscono I/O di caratteri o bytes da files: per dati più complessi (stringhe, numeri) introdurremo altre classi. Vedremo solo I/O in formato testo, ma quello in formato
binario è del tutto analogo.
|
![]() ![]() |
|
Per leggere dati da un file, occorre:
Il metodo read() restituisce un intero che può essere
|
![]() ![]() |
|
CopyRead.java: stampa su video del contenuto di un file (copyread.txt). Le eventuali IOException non vengono gestite dal programma ma rinviate al chiamante.
|
![]() ![]() |
|
Per scrivere dati su di un file, occorre:
CopyWrite.java: scrive in un file (copywrite.txt) una stringa fornita dall'utente, un carattere alla volta.
|
![]() ![]() |
|
Le classi FileReader e FileWriter
forniscono i metodi basici per leggere o scrivere caratteri su file. Non
è conveniente usarle direttamente nei programmi perché:
|
![]() ![]() |
|
CopyPrintWrite.java:
scrive alcuni dati in un file (copyprintwrite.txt).
Si noti come un oggetto FileWriter viene passato al costruttore di BufferedWriter, e a sua volta il nuovo oggetto viene passato al costruttore di PrintWriter.
|
![]() ![]() |
|
La classe BufferedReader fornisce
il metodo readLine() che legge una stringa, ma non ha metodi
per leggere, ad esempio, interi o double.
CopyBufferedRead.java:
stampa su video del contenuto di un file (copyread.txt)
(si confronti con CopyRead.java)
Si può convertire una stringa in un numero usando i metodi statici Integer.parseInt e Double.parseDouble. Si veda come questi metodi sono usati nella classe ConsoleReader, per realizzare i metodi readInt e readDouble. |
|
![]() ![]() |
|
![]() ![]() |
Vediamo alcuni programmi che copiano il contenuto
del file inp.txt nel file out.txt, ma che
gestiscono le eccezioni in modo via via più raffinato.
|