Università degli studi di Bergamo
Informatica II
Programmazione Object Oriented
Tutorato
Lezione 5
Dott. Marco Guarnieri
Dott. Eros Magri
05.10.11
File
●
●
●
java.io.File è la classe principale che lavora con
file e folder. Un'istanza di tale classe
rappresenta un file o una cartella nel filesystem
E' indipendente dal sistema operativo. Per il
separatore usare java.io.File.separator
File(path)
Se il path e' assoluto crea un oggetto File
per tale path. Se il path e' relativo crea
l'oggetto File per il file con tale path nella
directory di default
File(dirpath,fna Crea l'oggetto File con il path relativo alla
me)
directory passata
2
File
f.exists()
Ritorna true se il file esiste
f.isFile()
Ritorna true se f e' un file normale
f.isDirectory()
Ritorna true se f e' una directory
f.getName()
Ritorna il nome del file o directory
f.length()
Ritorna la dimensione in bytes del file
f.getPath()
Ritorna il path del file
f.delete()
Cancella il file
f.renameTo(f2)
Rinomina f in f2. Ritorna true in caso di
successo
f.createNewFile() Crea un nuovo file
3
Stream
●
●
Java utilizza il concetto di stream e cioe' flussi di
dati (byte)
Per accedere agli stream solitamente si
utilizzano sottoclassi di java.io.Reader e
java.io.Writer
4
Scrivere i File
●
Useremo:
●
●
●
●
FileWriter: Convenience class for writing character
files.
BufferedWriter: Writes text to a character-output
stream, buffering characters so as to provide for the
efficient writing of single characters, arrays, and
strings.
FileOutputStream: A file output stream is an output
stream for writing data to a File or to a FileDescriptor.
DataOutputStream: A data output stream lets an
application write primitive Java data types to an output
stream in a portable way.
5
Leggere i File
●
Useremo:
●
●
●
●
●
FileInputStream: A FileInputStream obtains input bytes from
a file in a file system.
DataInputStream: A data input stream lets an application
read primitive Java data types from an underlying input
stream in a machine-independent way.
InputStreamReader: An InputStreamReader is a bridge from
byte streams to character streams: It reads bytes and
decodes them into characters using a specified charset.
BufferedReader: Reads text from a character-input stream,
buffering characters so as to provide for the efficient reading
of characters, arrays, and lines.
FileReader: Convenience class for reading character files.
6
Esercizio 19
●
Si scriva un'applicazione che gestisce i prodotti
di un bar (nome, prezzo) e che permette di
stampare su file uno scontrino nel seguente
formato:
[nomeprodotto1, prezzoUnitarioInCentesimi, quantità]\n
[nomeprodotto2, prezzoUnitarioInCentesimi, quantità]\n
:
:
{“totale”, totaleComplessivoInCentesimi}
7
Esercizio 19
●
Un esempio di scontrino puo' essere:
[Coca Cola, 300, 1]\n
[Bionda media, 450, 2]\n
[Caffe, 100, 3]\n
{totale, 1500}
8
Esercizio 20
●
●
Si scriva un'applicazione complementare alla
precedente che legga il file nel formato illustrato
prima e ne stampi a video la lista di prodotti
singoli acquistati. Piu' prodotti uguali vanno
ripetuti
Per lo scontrino mostrato prima l'output sarà:
Coca Cola
Bionda Media
Bionda Media
Caffe
Caffe
Caffe
9
Esercizio 21
●
●
Le Application Programming Interface API
(Interfaccia di Programmazione di
un'Applicazione), sono ogni insieme di
procedure disponibili al programmatore, di solito
raggruppate a formare un set di strumenti
specifici per un determinato compito. [Wikipedia]
Si progetti e costruisca una API che permetta di
salvare su file almeno oggetti semplici (per le
collezioni e' un po' piu' complesso)
10
Esercizio 21
11