Indice. 1 Java I/O API. Indice

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Indice. 1 Java I/O API. Indice"

Transcript

1 Indice Indice 1 Java I/O API Flussi di byte in input/output Leggere e scrivere su file Flussi di caratteri in input/output Serializzazione/Deserializzazione Java I/O API Il sistema I/O: questioni generali Creare un buon sistema I/O è uno dei compiti più difficili per i progettisti di linguaggi Questo fatto è evidenziato dal numero di differenti approcci La sfida pare essere quella di volere coprire tutte le eventualità... riguardo ai diversi tipi di sorgenti: memoria centrale, files, la console, connessioni di rete, ecc. ma anche riguardo le diverse modalità di comunicazione: sequenziale, accesso casuale, bufferizzata, binaria, a caratteri, per linee, per parole (word), ecc. Java presenta molte classi (il package java.io), la cui somma è (solo) apparentemente confusa, in realtà contiene l esplosione che il sistema di I/O potrebbe comportare Flussi di Input/Output (I/O Stream) Per ricevere in ingresso dei dati, un programma apre uno stream su una sorgente di informazioni (file, memoria, connesioni di rete) e ne legge sequenzialmente le informazioni Applicazione lettura I N F O R M A Z I O N I Sorgente Analogamente un programma può inviare informazioni ad un destinatario, aprendo uno stream verso di esso e scrivendo sequenzialmente le informazioni in uscita scrittura Applicazione I N F O R M A Z I O N I Destinazione Reading e Wrinting Il processo di lettura (Reading) di informazioni può essere sintetizzato come segue: open(stream) while (more information) read(information) close(stream) Similmente per il processo di scrittura (Wrinting):

2 open(stream) while (more information) write(information) close(stream) Flussi di byte e di caratteri Il pacchetto java.io è composto da classi per la gestione di flussi di byte e classi per la gestione di flussi di caratteri Flusso di byte (byte stream) I byte sono sequenze di 8-bit (come da definizione); in questo caso si parla di I/O binario e viene usato in generale per i dati (es. i bit di un immagine digitale o di un segnale sonoro digitalizzato). I flussi di byte sono divisi in flussi d ingresso (InputStream) e flussi d uscita (OutputStream) Flusso di caratteri (character stream) Flussi di caratteri Unicode a 16-bit; parliamo allora di I/O testuale (es. i caratteri ascii). I flussi di caratteri sono divisi in lettori (Reader) e scrittori (Writer) 1.1 Flussi di byte in input/output I flussi di byte Uno stream è un canale di comunicazione collegato ad una sorgente o destinazione attraverso il quale le unità base di informazione (in questo caso i byte) viaggiano in sequenza Le varie classi che realizzano gli stream di byte si distinguono per il tipo di sorgente o destinazione con cui possono dialogare. Sorgenti diverse, che sono legate a problemi di implementazione o tecnologia diverse richiedono implemetazioni diverse I metodi per la lettura e scritture di byte sono comunque gli stessi. In java.io sono definite due classi astratte InputStream e OutputStream che definiscono l interfaccia per gli stream di input e output rispettivamente Flussi di byte in input: gerarchia FileInputStream PipedInputStream LineNumberInputStream InputStream FilterInputStream ByteArrayInputStream SequenceInputStream DataInputStream BufferedInputStream PushBackInputStream StringBufferInputStream ObjectInputStream 2

3 I canali di input Canali tipici: Un array di byte (ByteArrayInputStream) Un oggetto String (StringBufferInputStream) Un file (FileInputStream) Una pipe che realizza lo scambio tra processi (thread) (PipedInputStream) Una sequenza da altri stream collettati insieme in un singolo stream (SequenceInputStream) Altre sorgenti, come le connessioni ad Internet In aggiunta la classe astratta FilterInputStream fornisce utili modalità di input per dati particolari come i tipi primitivi, meccanismi di bufferizzazione, ecc. La classe astratta InputStream Dichiara i metodi che permettono di leggere i byte di una sorgente specificata. public abstract int read() throws IOException Legge un singolo byte e lo restituisce sotto forma di intero (tra 0 e 255). Se non è disponibile (fine del flusso) viene restituito -1. public int read(byte[] buf, int offset, int count) throws IOException Legge una sequenza di byte e la memorizza in un array di byte. Il numero massimo di byte letti è count. I byte vengono memorizzati a partire da buff[offset] sino a un massimo di buff[offset+count-1]. Restituisce -1 se si è giunti alla fine del flusso e 0 se vengono letti zero byte. I metodi di InputStream public long skip(long count) throws IOException Avanza lungo il flusso per un numero di byte di input pari a count. Restituisce l effettivo numero di byte saltati * public void close() throws IOException Chiude il flusso di input. Andrebbe invocato per rilasciare le risorse (es. i file) associate allo stream. Una volta invocato questo metodo, ulteriori operazioni sollevano eccezioni. L implementazione fornita da InputStream non fa nulla * * Le sottoclassi dovrebbero fornire un implementazione più efficiente Flussi di byte in output: gerarchia FileOutputStream DataOutputStream FilterOutputStream BufferedOutputStream OutputStream ByteArrayOutputStream PrintStream PipedOutputStream ObjectOutputStream 3

4 I canali di output Canali tipici: ByteArrayOutputStream: crea un buffer in memoria e invia dati al buffer FileOutputStream: per inviare informazioni a un file PipedOutputStream: implementa il concetto di pipe ObjectOutputStream: per inviare oggetti al destinatario In aggiunta la classe astratta FilterOutputStream fornisce utili modalità di output per dati particolari come i tipi primitivi, meccanismi di bufferizzazione, ecc. La classe astratta OutputStream Fornisce un astrazione per scrivere i byte in una certa destinazione. I metodi sono: public abstract void write(int b) throws IOException Scrive b sotto forma di byte. Il byte viene passato come argomento di tipo int perché spesso è il risultato di un operazione aritmetica su un byte (si evitano così conversioni di tipo veso il byte). Tuttavia solo gli 8 bit meno significativi del numero intero vengono scritti public void write(byte[] buf, int offset, int count) throws IOException Scrive una parte di array di byte, a partire da buff[offset] fino a un numero pari a count I metodi di OutputStream public void flush() throws IOException Effettua il flush (svuotamento) del flusso public void close() throws IOException Chiude il flusso di output. Andrebbe invocato per rilasciare le risorse (es. i file) associate allo stream. Una volta invocato questo metodo, ulteriori operazioni sollevano eccezioni. L implementazione di default non fa nulla * * Le sottoclassi dovrebbero fornire un implementazione più efficiente 1.2 Leggere e scrivere su file Flussi di byte da e verso file Per scrivere su un file dovremo far cooperare: Un oggetto che crea fisicamente un collegamento con il file (vedi la classe File) Un oggetto che gestisce lo stream (il canale di comunicazione verso il file) e che è in grado di inviare byte lungo lo stream (sarà un istanza di una sottoclasse di OutputStream) In seguito vedremo anche come sia possibile spezzare informazioni complesse (ad esempio String, double o int) in singoli byte tali da poter essere inviati sullo stream Collegamento ad un file La classe File fornisce una rappresentazione astratta ed indipendente dal sistema dei pathname gerarchici (list, permessi, check esistenza, dimensioni, tipo, crea dir, rinomina, elimina) Rappresenta solo il nome di un particolare file o il nome di gruppi di file in una directory Gli oggetti di tipo File consentono di creare un collegamento con il file fisico Si ricordi che le interfacce utente e i sistemi operativi utilizzano pathname dipendenti dal sistema per attribuire un nome ai file e alle directory 4

5 Pathname Rappresentazione dei path nei sistemi Unix e Windows: Unix: /home/grossi/labprog/lez08/java/prova.java Windows: c:\home\grossi\labprog\lez08\java\prova.java La convenzione di Java è quella di rappresentare i file nel formato di Unix, ma l interpretazione è dipendente dal sistema sottostante Utilizzato in ambiente Windows, la barra / viene interpretata come \ File: creazione e cancellazione public boolean createnewfile() throws IOException Crea un nuovo file vuoto con il nome specificato se e solo se tale file non esiste public boolean mkdir() Crea una directory con il nome denotato dal nome astratto public boolean delete() Cancella il file o la directory denotati dal nome astratto. Nel caso di directory, allora viene cancellata solo a patto che sia vuota File: metodi di test public boolean exists() Restituisce true se e solo se il file rappresentato dal nome astratto esiste public boolean setreadonly() Rende il file o la directory accessibili solo in lettura. Restituisce true se e solo se l operazione ha successo public boolean canwrite() Restituisce true se e solo se il file denotato dal nome astratto esiste e può essere scritto public boolean canread() Restituisce true se e solo se il file denotato dal nome astratto esiste e può essere letto File: informazioni public String getname() Restituisce il nome del file (o della directory) denotato dal nome astratto. È solo l ultimo nome nella nel pathname globale. Se il pathname è vuoto viene restituita la stringa vuota public String getpath() Restituisce il pathname completo del file public long lastmodified() Restituisce un long che rappresenta la data dell ultima modifica public long length() Restituisce la dimensione in bytes del file denotato dal nome astratto File: esempio 1 List directory Costruire la classe LsDir che si comporti come il comando Unix list directory: legge il contenuto di una directory specificata come argomento e stampa in output l elenco ordinato dei nomi di file e dirs presenti nella dir in esame. Se questa non viene specifcata, si considera la dir corrente (.). (Sugg.: utilizzare il metodo list() della classe File) 5

6 File: esempio 2 List directory Costruire la classe MkDir che si comporti come il comando Unix make directory: crea directory con i nomi specificati come argomento. Inoltre se viene data l opzione -r e due nomi (argomenti), rinomina la prima dir (se esiste) col secondo nome. Usage: MkDir path Crea una o più dir Usage: MkDir -r path1 path2 - Muove una dir nell altra Scrivere e leggere da file In FileInputStream tutti i metodi di InputStream sono sovrascritti. Inoltre ha il costruttore: public FileInputStream(File file) Crea un FileInputStream aprendo una connessione al File specfificato In FileOutputStream tutti i metodi di OutputStream sono sovrascritti public FileOutputStream(File file) Crea un FileOutputStream aprendo una connessione al File specfificato Leggere e scrivere su file Copiare file Costruire la classe CpFile che effettui la copia di un file in un altro già esistente (sovrascrivendolo). Se il file destinatario non esiste solleva l eccezione: FileNotFoundException("Il file: "+args[0]... Sugg.: Okkio alle eccezioni!!! Uso: java CopiaFile <file_da_copiare> <file_copia> Scrivere dati primitivi su stream di byte Per scrivere dati primitivi in un file di testo avremo bisogno di una classe che consenta di convertire tali dati in sequenze di byte. La classe PrintStream, che è un estensione FilterOutputStream, fornisce queste funzionalità public PrintStream(OutputStream out) Crea un print stream verso l output stream specificato I metodi che mette a dispozione sono i tipici metodi di scrittura: void print(boolean b), void print(char c), void print(char[] s), void print(double d), void print(float f), void print(int i), void print(long l), void print(object obj), void print(string s) La corrispondente versione con println 6

7 La classe DatiPrimitivi import java.io.*; public class DatiPrimitivi { public static void main(string[] args) throws IOException { File file = new File("prova.dat"); FileOutputStream fos = new FileOutputStream(file); PrintStream ps = new PrintStream(fos); ps.println("stringa"); ps.println(100); ps.println(3 / 4.0); ps.println( q ); ps.println((byte) 128); ps.println(new char[] { C, I, A, O ); ps.println(true && false); I flussi di I/O Standard I concetti di standard input, standard output e standard error sono ereditati dalle librerie C ed introdotti nell ambiente Java come campi statici della classe System public static final InputStream in Lo standard input System.in è usato per l input al programma, tipicamente (ma non obbligatoriamente) legge l input da tastiera public static final PrintStream out Lo standard output System.out è usato per l output del programma tipicamente (ma non obbligatoriamente) mostrato a video public static final PrintStream err Lo standard error System.err ha la funzione di mostrare a video messaggi di errore 1.3 Flussi di caratteri in input/output Flussi di caratteri in input: gerarchia StringReader CharArrayReader Reader InputStreamReader FilterReader FileReader PushbackReader PipedReader BufferedReader LineNumberReader La classe astratta Reader Fornisce metodi analoghi a quelli della classe InputStream: public int read() throws IOException Legge un singolo carattere e lo restituisce sotto forma di intero (tra 0 e 65535). Se non è disponibile (fine del flusso) viene restituito -1 7

8 public abstract int read(char[] buf, int offset, int count) throws IOException Legge una sequenza di caratteri e la memorizza in un array di char... public int read(char[] buf) throws IOException Come public int read(buf, 0, buf.length) public boolean ready() throws IOException Restituisce true se il flusso è pronto per la lettura (esiste almeno un carattere disponibile) InputStreamReader Un oggetto di questa classe costituisce un ponte fra uno stream di byte e uno stream di caratteri. Il costruttore InputStreamReader(InputStream in) Crea un InputStreamReader che usa la codifica dei caratteri di default del sistema InputStreamReader è una sottoclasse di Reader quindi mette a disposizione i metodi per leggere caratteri FileReader Classe di utilità per leggere file di caratteri. Il costruttore assume che il file contenga caratteri nello schema di codifica standard. E un estensione di InputStreamReader Costruttori: public FileReader(File file) public FileReader(String nomefile) Problema Contare gli spazi Definire una classe che conta gli spazi di un file di testo specificato come argomento o, in mancanza di argomento, dallo standard input. Flussi di caratteri in output: gerarchia StringWriter CharArrayWriter OutputStreamWriter FileWriter Writer FilterWriter PipedWriter BufferedWriter PrintWriter 8

9 La classe astratta Writer Fornisce un astrazione per scrivere i caratteri in una certa destinazione public void write(int c) throws IOException Scrive c sotto forma di carattere. Il carattere viene passato come argomento di tipo int, tuttavia solo i 16 bit meno significativi vengono scritti public abstract void write(char[] buf, int offset, int count) throws IOException Scrive una porzione di array di caratteri... public void write(string s, int offset, int count) throws IOException Scrive un numero di caratteri pari a count della stringa s a partire da s.charat(offset). Copiare file di testo Copiare se stessi Scrivere un programma (classe Copy.java) che usa FileReader e FileWriter per copiare se stesso in un file di backup (CopyBkup.java) Lavorare con i Filtri Il pacchetto java.io fornisce un insieme di classi che permettono di concatenare dei flussi allo scopo di produrne dei nuovi e maggiormente utili. I dati vengono filtrati nell atto in cui vengono letti e scritti da uno stream Esempio: Possiamo collegare un filtro allo standard input, come segue: BufferedReader d = new BufferedReader( new DataInputStream(System.in)); String str; while ((str = d.readline())!= null) { // fai qualcosa... Qui BufferedReader memorizza i dati in un buffer evitando ripetute letture allo stream BufferedReader Legge un testo da un stream di input a caratteri, bufferizza i caratteri letti in modo da fornire strumenti efficienti per leggere caratteri, array e linee. Consente di trattare in lettura direttamente delle stringhe public String readline() throws IOException Legge una linea di testo. Un linea è considerata conclusa dai caratteri \n (line feed), a \r (carriage return), o da un carriage return seguito da un linefeed. Se non è stata raggiunta la fine dello stream restituisce la stringa contente la linea di caratteri letta ma che non include i caratteri di terminazione. Se è stata raggiunta la fine dello stream restituisce null Leggere linee da un file di testo // collegamento al file File file = new File(nomefile); // stream di caratteri FileReader fr = new FileReader(file); // lettore bufferizzato BufferedReader br = new BufferedReader(fr); String riga; 9

10 while ((riga = br.readline())!= null ) System.out.println(riga); Leggere linee dallo standard input Avevamo osservato che System.in è di tipo InputStream. Allora un possibile modo di leggere linee di testo dallo standard input è il seguente // per convertire stream di byte in strem di car. InputStreamReader isr = new InputStreamReader(System.in); // lettore bufferizzato BufferedReader br = new BufferedReader(isr); String riga; while ((riga = br.readline())!= null ) System.out.println(riga); Buffering... Echo dell input Scrivere la classe Echo.java che legge righe di testo da stdin e, dopo aver digitato return, le ristampa su stdout. 1.4 Serializzazione/Deserializzazione Scrivere e leggere oggetti... In molte applicazioni risulta utile scambiare oggetti in formato binario, senza passare attraverso una conversione del formato. Java fornisce a questo scopo degli strumenti per scrivere su uno stream di byte e leggere da uno stream byte direttamente degli oggetti. Ogni classe che implementa l interfaccia Serializable può essere trasformata in una sequenza di byte che può essere successivamente ricomposta a formare l oggetto originale... scrivere e leggere oggetti Serializzazione: il processo che consistente nel convertire la rappresentazione di un oggetto in un flusso di byte. Deserializzazione: il processo di ricostruzione di un oggetto a partire da un flusso di byte Questo meccanismo è applicabile anche inviando i byte attraverso la rete. Il meccanismo di serializzazione compensa in modo automatico alle differenze di rappresentazione che possono esistere fra diversi sistemi operativi. Ad esempio, è possibile creare un oggetto su una macchina Windows, serializzarlo, inviarlo attraverso la rete a una macchina Unix dove sarà correttamente ricostruito. Le classi ObjectOutputStream fornisce metodi per convertire un oggetto o un dato primitivo in una sequenza di byte per poi inviarlo lungo un OutputStream ObjectInputStream fornisce metodi per convertire una sequenza di byte proveniente da un InputStream in un oggetto o in dato primitivo 10

11 ObjectOutputStream Costruttore: public ObjectOutputStream(OutputStream out) throws IOException Crea un ObjectOutputStream che scrive sull OutputStream specificato Metodi: public final void writeobject(object obj) throws IOException Scrive uno specifico oggetto sull ObjectOutputStream Metodi per scrivere dati primitivi: writedouble(double data), writefloat(float data), writeint(int data), writelong(long data),... ObjectInputStream Costruttore: public ObjectInputStream(InputStream in) throws IOException Crea un ObjectInputStream che legge dall InputStream specificato Metodi: public final Object readobject() throws OptionalDataException, ClassNotFoundException, IOException Legge un oggetto dall ObjectInputStream Metodi per leggere dati primitivi: double readdouble(), float readfloat(), int readint(), long readlong()... Scrivere oggetti FileOutputStream out = new FileOutputStream("dataOdierna"); ObjectOutputStream s = new ObjectOutputStream(out); s.writeobject("data di oggi: "); s.writeobject(new Data()); s.flush(); La serializzazione va richiesta Attenzione: gli oggetti non sono automaticamente serializzabili Un oggetto può contenere dati che non si vuole siano accessibli dall esterno (come una password). Una volta serializzata e, ad esempio memorizzata su file, tale informazione può essere recuperata anche se nella classe originale era dichiarata privata Per poter scrivere (o leggere) gli oggetti di una classe questa deve dichiarare esplicitamente di ammettere la serializzazione implementando l interfaccia marker Serializable Serializable Si tratta di un interfaccia vuota! Non contiene nessun metodo, per questo motivo viene anche detta classe marcatrice (marker) Per rendere una classe serializzabile è sufficiente dichiarare che implementa l interfaccia Serializable; non occorre implementare alcun metodo 11

12 import java.io.serializable; public class MiaClasse implements Serializable {... Esempio: public final class String implements Serializable Leggere oggetti Il seguente codice legge gli oggetti scritti nello stream object dell esempio precedente (deve essere collegato a un InputStream) FileInputStream in = new FileInputStream("dataOdierna"); ObjectInputStream s = new ObjectInputStream(in); String oggi = (String)s.readObject(); Date date = (Date)s.readObject(); Deserializzazione: esperimento File: Alieno.java import java.io.serializable; public class Alieno implements Serializable { File: ScriviAlieno.java import java.io.fileoutputstream; import java.io.objectoutputstream; import java.io.ioexception; public class ScriviAlieno { public static void main(string[] args) throws IOException { FileOutputStream fos=new FileOutputStream("fileAlieno.bin"); ObjectOutputStream oos = new ObjectOutputStream(fos); Alieno et = new Alieno(); oos.writeobject(et); Leggiamolo... Compiliamo ed eseguiamo: viene generato il file binario filealieno.bin File: LeggiAlieno.java import java.io.fileinputstream; import java.io.objectinputstream; import java.io.ioexception; public class LeggiAlieno { public static void main(string[] args) throws Exception { FileInputStream fis=new FileInputStream("fileAlieno.bin"); ObjectInputStream ois = new ObjectInputStream(fis); Object alieno = ois.readobject(); System.out.println(alieno.getClass()); 12

13 Esecuzione Leggiamolo ora in una directory che non contiene la classe Alieno > java LeggiAlieno Exception in thread "main" java.lang.classnotfoundexception: Alieno at java.net.urlclassloader$1.run(urlclassloader.java:200) at java.security.accesscontroller.doprivileged(native Method) at java.net.urlclassloader.findclass(urlclassloader.java:188) at java.lang.classloader.loadclass(classloader.java:297) at sun.misc.launcher$appclassloader.loadclass(launcher.java:286) at java.lang.classloader.loadclass(classloader.java:253) at java.lang.classloader.loadclassinternal(classloader.java:313) at java.lang.class.forname0(native Method) at java.lang.class.forname(class.java:195) at java.io.objectinputstream.resolveclass(objectinputstream.java:654) at java.io.objectinputstream.inputclassdescriptor(objectinputstream.java:918) at java.io.objectinputstream.readobject(objectinputstream.java:366) at java.io.objectinputstream.readobject(objectinputstream.java:236) at java.io.objectinputstream.inputobject(objectinputstream.java:1186) at java.io.objectinputstream.readobject(objectinputstream.java:386) at java.io.objectinputstream.readobject(objectinputstream.java:236) at LeggiAlieno.main(LeggiAlieno.java:11) Quindi... Per poter recuperare la struttura dell oggetto una volta letto necessario che la JVM possa accedere a tutte le classi che sono state coinvolte nel processo di serializzazione. Nel caso precedente ponendo la classe compilata Alieno.class nella directory in cui è eseguita LeggiAlieno si ottiene: > java LeggiAlieno class Alieno 13

Java I/O API. Java I/O. G. Grossi. 10 gennaio G. Grossi Lezione 11

Java I/O API. Java I/O. G. Grossi. 10 gennaio G. Grossi Lezione 11 Java I/O G. Grossi 10 gennaio 2007 Indice 1 Java I/O API Il sistema I/O: questioni generali Creare un buon sistema I/O è uno dei compiti più difficili per i progettisti di linguaggi Questo fatto è evidenziato

Dettagli

LETTURA DI DATI DA INPUT

LETTURA DI DATI DA INPUT LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream FileDescriptor InputStream SequenceInputStream ByteArrayInputStream

Dettagli

Informatica. Prof. A. Longheu. Input e Output

Informatica. Prof. A. Longheu. Input e Output Informatica Prof. A. Longheu Input e Output 1 Il package java.io Il package java.io definisce i concetti base per gestire l I/O da qualsiasi sorgente e verso qualsiasi destinazione. L obiettivo è fornire

Dettagli

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo) Tipi di stream Stream di caratteri Stream di byte Classi astratte che implementano

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli

A. Ferrari Java: Stream e File

A. Ferrari Java: Stream e File Java: Stream e File la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

La paninoteca. Mi resta da scrivere solo costo()

La paninoteca. Mi resta da scrivere solo costo() La paninoteca Mi resta da scrivere solo costo() La paninoteca Usiamo l ereditarietà per definire dei Panini particolari Ci sono alcuni tipi di pane Estendendo Panino scrivo meno codice Nell esempio eredito

Dettagli

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

INPUT OUTPUT

INPUT OUTPUT INPUT OUTPUT Il package java.io include classi, interfacce ed eccezioni per la gestione dellʼi/o. Si può distinguere tra due classi di funzionalità: per leggere e scrivere dati (anche in maniera indipendente

Dettagli

A. Ferrari Stream e File

A. Ferrari Stream e File Stream e File Java la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

Java I/O e serializzazione

Java I/O e serializzazione Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilità di combinare classi differenti. Modalità di interazione distinte

Dettagli

Input/Output in Java

Input/Output in Java Input/Output in Java 1 Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video Con il file system per leggere e salvare

Dettagli

Il linguaggio Java. Gli stream

Il linguaggio Java. Gli stream Il linguaggio Java Gli stream Overview Uno stream è un flusso unidirezionale di informazioni da una sorgente esterna ovvero verso una sorgente esterna a cui si accede in modo sequenziale 2 Algoritmi di

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A2 I file binari 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java File Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce

Dettagli

Fondamenti di Informatica C Esercitazioni di Laboratorio / 4 Outline

Fondamenti di Informatica C Esercitazioni di Laboratorio / 4  Outline Fondamenti di Informatica C Esercitazioni di Laboratorio / 4 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi

Dettagli

Java I/O e serializzazione

Java I/O e serializzazione Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilita di combinare classi differenti. Modalita di interazione distinte

Dettagli

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

Dettagli

I/O Streams in Java. Lorenzo Gallucci

I/O Streams in Java. Lorenzo Gallucci I/O Streams in Java Lorenzo Gallucci I/O Streams La libreria Java dispone di un API sofisticata per l interfacciamento I/O Il package di riferimento è java.io Due classi principali InputStream, per l input

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

domenica 9 giugno 13 Serializzazione

domenica 9 giugno 13 Serializzazione Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe

Dettagli

Jav@Lab Il linguaggio Java I file sequenziali

Jav@Lab Il linguaggio Java I file sequenziali Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno

Dettagli

Il sistema I/O di Java

Il sistema I/O di Java Programmazione Java:. Il sistema I/O di Java romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Stream I/O Gestione di stream byte oriented Filtri Gestione di stream char oriented

Dettagli

Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera.

Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera. IL PACKAGE JAVA.IO Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera. Il package può essere classificato secondo vari punti

Dettagli

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo)! Tipi di stream " Stream di caratteri " Stream di byte! Classi astratte che

Dettagli

Variabili e Metodi di classe Interfacce e Package File in Java

Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe definisce un

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file

Dettagli

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

LETTURA E SCRITTURA DI FILE

LETTURA E SCRITTURA DI FILE LETTURA E SCRITTURA DI FILE (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè LA CLASSE FILE La classe File fornisce una rappresentazione astratta del percorso (pathname) di

Dettagli

Lezione 16 programmazione in Java

Lezione 16 programmazione in Java Lezione 16 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Approfondimenti della programmazione OO I FILE Sgli stream (flussi) I file ad

Dettagli

02CBI - M. Morisio. I/O in Java. Input Output. Classi di Primo Livello - java.io. Stream. Pag. 1

02CBI - M. Morisio. I/O in Java. Input Output. Classi di Primo Livello - java.io. Stream. Pag. 1 Input Output I/O in Java Stream Buffer File StringTokenizer, StreamTokenizer Serializzazione Stream Stream Tutte le operazioni di I/O si riferiscono all astrazione dello STREAM (flusso di byte) Uno stream

Dettagli

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132

File e Stream In Java. Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 File e Stream In Java Prof. Francesco Accarino IIS Sesto San Giovanni Via Leopardi 132 Lettura da e scrittura su file Java fornisce operazioni di input/output tramite le classi del package java.io. La

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è

Dettagli

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException

FileInputStream read() read(byte[]) readint() DataInputStream FileInputStream EOFException ESERCITAZIONE 9 I/O Esercizio 1 Lettura da file binario Se gli interi letti appartengono a [-5;5] scrittura su un altro file binario Altrimenti sollevare una eccezione la quale stampa a video un messaggio

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Serializzazione. Programmazione in Ambienti Distribuiti A.A

Serializzazione. Programmazione in Ambienti Distribuiti A.A Serializzazione Programmazione in Ambienti Distribuiti A.A. 2003-04 Messaggi La comunicazione tra due entità remote richiede la comprensione dei messaggi scambiati Occorre specificarne il formato: A livello

Dettagli

IL PACKAGE java.io CONCETTO BASE: LO STREAM

IL PACKAGE java.io CONCETTO BASE: LO STREAM IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione

Dettagli

IL PACKAGE java.io. Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione.

IL PACKAGE java.io. Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione

Dettagli

Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B Università di Ferrara Dipartimento di Ingegneria Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B Tutor Arnaud Nguembang Fadja: ngmrnd@unife.it Damiano Azzolini: damiano.azzolini@student.unife.it Esercizio

Dettagli

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Informatica I. Ingegneria Medica. Prof. Diego Salamon Informatica I Ingegneria Medica Prof. Diego Salamon Gestione I/O Prof. Diego Salamon Introduzione Nella creazione e gestione del software è necessario interagire con entità esterne a quelle del programma

Dettagli

ESERCIZIO 1 (FILE DI TESTO)

ESERCIZIO 1 (FILE DI TESTO) ESERCIZIO 1 (FILE DI TESTO) Scrivere su un file di testo righe inserite da console, fino a quando non viene inserita la linea vuota. Passare il nome del file come parametro al programma. Bisogna incapsulare

Dettagli

Note ed esercizi aggiuntivi

Note ed esercizi aggiuntivi Corso di Programmazione Anno Accademico 2015 2016 Prof. Giovanni Pighizzini ed esercizi aggiuntivi 16. Stream di I/O Esempio. Visualizza sul monitor il contenuto di un file di caratteri. int i; while ((i

Dettagli

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2012/2013

Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale. Anno Accademico 2012/2013 Laboratorio Reti di Calcolatori Laurea Triennale in Comunicazione Digitale Anno Accademico 2012/2013 Streams Maggior parte della programmazione di rete è eseguire operazione di input e output. Sposto byte

Dettagli

ProgrammazioneJava. Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila. diruscio@di.univaq.it

ProgrammazioneJava. Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila. diruscio@di.univaq.it ProgrammazioneJava Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila diruscio@di.univaq.it. Dimensioni nella gestione dell I/O 2 2 Formato dei dati Audio/Video MPEG, DiVX

Dettagli

Unità 2 I file binari

Unità 2 I file binari Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA file binari file di tipi primitivi file di oggetti serializzazione (B) CONOSCENZA E COMPETENZA Rispondere alle seguenti domande

Dettagli

Programmazione 2. Input Output su Stream e File

Programmazione 2. Input Output su Stream e File Programmazione 2 Input Output su Stream e File Stream In generale ogni programma ha un flusso (stream) di dati in input ed uno in output. Stream di input Stream di output Input/Output in Java Il package

Dettagli

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento

Le classi FileInputStream e RandomAccessFile. Semplici Algoritmi di Ordinamento Fondamenti di Informatica Le classi FileInputStream e RandomAccessFile Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Classe FileInputStream La classe FileInputStream

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Jody Marca jody.marca@polimi.it Laboratorio N 2 Cosa faremo oggi 2 Javadocs Uso del debugger Input Output Serializzazione degli oggetti Javadoc 3 Javadoc è uno strumento

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

789:;<:' .&+/"0&12%34%5&66+,("%3787%% %"+&%88$77%9%8:$:7%% ;<'&12%8%=,+>"%3787 % % % %"+&%88$77%9%8:$:7%

789:;<:' .&+/0&12%34%5&66+,(%3787%% %+&%88$77%9%8:$:7%% ;<'&12%8%=,+>%3787 % % % %+&%88$77%9%8:$:7% !"#$"%&'()')*+'!"#$%!&'()%*&++,+&-%%!"#$%&'"(()("*+,#$'"&$-. 789:;"%3787 % % % %"+&%88$77%9%8:$:7%?("'(%)"'"%'&0% 0,6"+,@"+("%1(%A'5"+=,B/,%C+,'1&$%

Dettagli

Gestione di file in Java

Gestione di file in Java CAPITOLO 17 Gestione di file in Java Ogni insieme di informazioni residenti su memoria di massa costituisce in Java un flusso di dati che è denominato stream. Più in particolare un input stream costituisce

Dettagli

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)

Dettagli

Creazione, eliminazione, lettura e scrittura di file di testo

Creazione, eliminazione, lettura e scrittura di file di testo Creazione, eliminazione, lettura e scrittura di file di testo Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file La classe

Dettagli

Gestione dell I/O su File

Gestione dell I/O su File Fondamenti di Informatica Prof. Alfredo Cuzzocrea University of Trieste Gestione dell I/O su File Credits to: Prof. L. Badia UniPD Lettura da e scrittura su file Java fornisce operazioni di input/output

Dettagli

Introduzione. Java. Streams. Streams

Introduzione. Java. Streams. Streams Java il sistema di I/O G. Prencipe prencipe@di.unipi.it Introduzione La gestione del sistema di I/O è una parte fondamentale di qualsiasi linguaggio di programmazione In questa lezione approfondiremo la

Dettagli

Programmazione in Java e gestione della grafica. Lezione 24

Programmazione in Java e gestione della grafica. Lezione 24 Programmazione in Java e gestione della grafica Lezione 24 2 Parliamo di. Files and Streams 3 Files e streams I dati memorizzati in variabili e array sono dati temporanei File si usano per conservare grosse

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario API di Java Istruzione di scrittura Istruzione di lettura 21/03/2011 2 API di Java Java è un linguaggio orientato agli oggetti basato

Dettagli

PACKAGE DI I/O. Dott. Riccardo Zese.

PACKAGE DI I/O. Dott. Riccardo Zese. PACKAGE DI I/O Dott. Riccardo Zese riccardo.zese@unife.it Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Input/Output in Java il package java.io object serialization La programmazione di rete i package java.net e java.rmi 149 Approccio generale La libreria delle classi Java

Dettagli

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream

LETTURA DI DATI DA INPUT. Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Gli stream di byte consentono già di leggere dati (numeri di vario tipo), tramite la classe DataInputStream LETTURA DI DATI DA INPUT Sfortunatamente, una tale classe non esiste

Dettagli

Java. Il package java.io

Java. Il package java.io Java Il package java.io Flussi e canali I flussi permettono operazioni di I/O bloccanti (java.io) I canali permettono operazione di I/O oltre che bloccanti anche operazioni non bloccanti (java.nio) 1 IL

Dettagli

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite

Dettagli

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java:

Esercitazione n 4. Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Esercitazione n 4 Obiettivi: Capacità di analisi e di estensione di progetti esistenti Il concetto di filtro Linguaggio Java: Gestione di input/output da console e da file (package java.io) Utilizzo di

Dettagli

Comunicare'con'il'mondo

Comunicare'con'il'mondo PACKAGE'DI'I/O Do#.%PhD%Denis%Ferrare/% denis.ferrare*@unife.it Comunicare'con'il'mondo Pra$camente*ogni*programma*ha*la*necessità*di*comunicare*con*il* mondo*esterno *Con*l utente*a7raverso*tas$era*e*video

Dettagli

14 Input-Output. Outline. Goal della lezione. Argomenti. Mirko Viroli a.a. 2013/2014

14 Input-Output. Outline. Goal della lezione. Argomenti. Mirko Viroli a.a. 2013/2014 14 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 013/014 Mirko Viroli (Università di Bologna) OOP14: I/O

Dettagli

Unità A1 I file testo

Unità A1 I file testo Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA stream file testo file binari file di tipi primitivi bufferizzazione InputStreamReader OutputStreamWriter Reader Writer FileReader

Dettagli

argomen> PACKAGE DI I/O Gli STREAM: conce0 di base STREAM di byte STREAM di cara8eri Ges9one di File (classe File) Serializzazione 02/11/14

argomen> PACKAGE DI I/O Gli STREAM: conce0 di base STREAM di byte STREAM di cara8eri Ges9one di File (classe File) Serializzazione 02/11/14 PACKAGE DI I/O argomen> Gli STREAM: conce0 di base STREAM di byte STREAM di cara8eri Ges9one di File (classe File) Serializzazione 1 conce@o base: gli stream I programmi in JAVA comunicano (cioè effe8uano

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Eccezioni: Gestione dei Flussi versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Input/Output in Java. Fondamenti di Informatica L-B

Input/Output in Java. Fondamenti di Informatica L-B Input/Output in Java Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video Con il file system per leggere e salvare

Dettagli

L input da tastiera in Java. Dott. Ing. M. Banci, PhD

L input da tastiera in Java. Dott. Ing. M. Banci, PhD L input da tastiera in Java Dott. Ing. M. Banci, PhD La lettura di un flusso di input in Java avviene attraverso l'oggetto in della classe System. System.in appartiene alla classe InputStream (letteralmente

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 18,19 15,19/11/2013

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

Flussi, lettori e scrittori

Flussi, lettori e scrittori Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 21 Riassunto

Dettagli

Lezione n.5 LPR-Informatica Applicata 13/3/2006

Lezione n.5 LPR-Informatica Applicata 13/3/2006 Lezione n.5 LPR-Informatica Applicata 13/3/2006 1 LA CLASSE BYTEARRAYOUTPUTSTREAM Definisce una struttura dati protected byte buf [ ]; protected int count buf memorizza i bytes che vengono scaricati sullo

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Eccezioni

RETI DI CALCOLATORI Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Eccezioni Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Un flusso (stream) è una astrazione che produce e/o consuma informazioni.

Un flusso (stream) è una astrazione che produce e/o consuma informazioni. I programmi Java eseguono l I/O mediante i flussi. Un flusso (stream) è una astrazione che produce e/o consuma informazioni. Ogni flusso è collegato ad un dispositivo fisico dal sistema di I/O di java.

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

La Serializzazione in Java. L24_Serialization 1

La Serializzazione in Java. L24_Serialization 1 La Serializzazione in Java L24_Serialization 1 La Serialization è la trasformazione di un oggetto in memoria in una sequenza di byte (ospitata in un file, trasmessa in rete, ecc). La Deserialization è

Dettagli

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client

Dettagli

Java I/O. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.

Java I/O. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi. Java I/O Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it Introduzione Spesso un programma deve acquisire dati da una sorgente o inviare

Dettagli

Lettura e scrittura di dati

Lettura e scrittura di dati Il package java.io Lettura e scrittura di dati I dati possono provenire/essere inviati su molte sorgenti/destinazioni Memoria Dischi Rete In ogni caso un uno stream sorgentre/streeam destinazione deve

Dettagli

15 Input-Output. Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena

15 Input-Output. Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena 15 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 2015/2016 Mirko Viroli (Università di Bologna) OOP15:

Dettagli

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable?

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable? Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Interfaccia Comparable class Contatore implements Comparable

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA8 B1 Accesso sequenziale 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione 2 1 Introduzione In questa Unità vediamo

Dettagli

Input/Output. Introduzione. Stream. Capitolo 10 LORENZO BETTINI

Input/Output. Introduzione. Stream. Capitolo 10 LORENZO BETTINI Capitolo 10 Input/Output LORENZO BETTINI Introduzione In questo capitolo verrà illustrato il package java.io, che supporta il sistema fondamentale di input/output (I/O) di Java. Nei programmi Java vengono

Dettagli

Streams e disk files

Streams e disk files Streams e disk files Streams Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream: Testo: sequenza

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Array Array monodimensionali Array bidimensionali Esercizi 16/01/2013 2 ARRAY Gli array sono oggetti utilizzati in Java per memorizzare

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni

FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI FONDAMENTI DI INFORMATICA C Linguaggio Java: Eccezioni Prof. Zambonelli, Ing. Cabri, Ing. Denti, Ing. Andrea Aime Zambonelli,

Dettagli

Programmazione distribuita in Java. Socket & Client-Server

Programmazione distribuita in Java. Socket & Client-Server Programmazione distribuita in Java Socket & Client-Server 1 Strumenti per networking Libreria java.net Socket (Astrazione per una presa di comunicazione) Serializzazione Socket Per comunicare si apre una

Dettagli