Università degli studi di Bergamo Informatica II Programmazione Object Oriented Esercitazioni Esercitazione (File) Dott. Marco Guarnieri Dott. Eros Magri 23.03.12 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 1f ● 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 1f ● Un esempio di scontrino puo' essere: [Coca Cola, 300, 1]\n [Bionda media, 450, 2]\n [Caffe, 100, 3]\n {totale, 1500} 8