Il linguaggio Java I file sequenziali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Jav@Lab Il linguaggio Java I file sequenziali"

Transcript

1 Il linguaggio Java I file sequenziali

2 Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno di da cui e verso cui i dati transitano (dischi, nastri, ecc.): quindi il file è visto come contenitore su supporto di memorizzazione di massa, la tastiera come dispositivo di standard input e il video o la stampante assimilati a standard output. La tendenza odierna è quella di separare nettamente i dispositivi di I/O dal trattamento dei flussi di dati da e verso di essi. Per questa ragione in Java si è fatta la scelta di introdurre "astrazioni" pensate come "oggetti" che sono indipendenti dai dispositivi. Tali oggetti sono o Stream, o Pipe o Filter e sono veri e propri Abstract Data Type dotati di operazioni che non dipendono dal particolare dispositivo di I/O. Gli Stream (Flussi) Il significato letterale della parola stream è "flusso". In informatica il flusso è un astrazione che definisce i metodi di lettura/scrittura delle unità di informazione accessibili. Tali informazioni vengono anche detti "token". Un "token", quindi, è una unità di informazione accessibile è può consistere in un byte, un carattere o un oggetto strutturato. Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione. Le sorgenti possono essere le più svariate: o la memoria Ram del computer, o Internet, o un dispositivo permanente di memorizzazione dati, o la tastiera ecc. La stessa cosa vale per le destinazioni. La sorgente e la destinazione del flusso di byte sono anche denominati rispettivamente processo produttore e processo consumatore. Sorgente = Processo Produttore Destinazione = Processo Consumatore Sorgente Flusso di Input Metodo o Programma che legge i dati Metodo o Programma che scrive i dati Flusso di Output Destinazione

3 Non è necessario conoscere in dettaglio la sorgente o la destinazione per leggere un flusso di input o per scrivere in un flusso di output. I metodi generali (oppure i programmi) che operano su una sorgente di dati accettano come argomento un flusso di input, così quelli che scrivono su una destinazione accettano come argomento uno stream di output. I Filters (Filtri) Oltre ai metodi (o programmi) che fanno uso di stream di I/O esistono anche "oggetti" detti processori di dati. Un filter (filtro) o processore di dato è un metodo, o un programma, dotato di due argomenti di tipo flusso: legge dati dal flusso di input, li elabora (filtra, seleziona ecc.) e li scrive sul flusso di output. I filtri non necessitano di alcuna informazione, nè riguardo alla sorgente nè riguardo alla destinazione; i filtri richiedono soltanto le modalità di accesso (astratte) al rispettivo flusso. Un filtro può essere rappresentato dalla figura: Flusso di Input FILTRO o PROCESSORE Flusso di Output La separazione delle entità Queste astrazioni:. o o o o o o Sorgente o processo produttore dei dati; Flusso di input; Pipe o condotto; Filtro o processore; Flusso di output; Destinazione o processo Consumatore dei dati consentono di separare logicamente quelle entità, come File e dispositivi di memorizzazione, che nell informatica "classica" erano considerate legate in modo univoco. È il programmatore che decide quali relazioni costruire tra le diverse entità astratte e tra queste ultime e i dispositivi concreti. I Flussi di Input/Output Le informazioni memorizzate in un file, in ultima analisi sono sempre memorizzate come serie di byte. In java un oggetto dal quale è possibile leggere una sequenza di byte viene chiamato stream di input; un oggetto sul quale è possibile scrivere una sequenza di byte viene chiamato stream di output. Tali Stream vengono specificati nelle classi astratte InputStream e OutputStream. Tali gerarchie di classi sono presenti nel package java.io. Visto che i genitori sono classi astratte, i relativi metodi sono implementati solo nelle sottoclassi della gerarchia.

4 Gli schemi seguenti mostrano la gerarchia, anche se non completa, delle classi essenziali relative al trattamento dei flussi di input Accesso a carattere (2 byte) InputStream ByteArrayInputStream FileInputStream OutputStream ByteArrayOutputStream FileOutputStream Accesso a byte Reader CharArrayReader StringReader InputStreamReader FileReader BufferedReader Writer CharArrayWriter StringWriter OutputStreamWriter FileWriter BufferedWriter Riflettiamo. La classe astratta InputStream ha un metodo astratto read che legge un byte e restituisce il byte letto oppure 1 in caso di non lettura. La classe FileInputStream che discende da InputStream, ridefinisce il metodo read che consente tale operazione; tale metodo permette al massimo la lettura di un gruppo di byte, ma non consente la lettura di particolari tipi di variabili. E necessario allora usare le classi Filters che elaborano i gruppi di byte letti mettendo a disposizione metodi per la lettura/scrittura di variabili di tutti i tipi fondamentali di Java. L accesso sequenziale basato sul byte Le classi FileInputStream e FileOutputStream forniscono stream di Input e Output associati ad un file del disco. Per associare uno Stream di input ad un file occorre utilizzare il costruttore della classe FileInputStream nel seguente modo: FileInputStream f = new FileInputStream( elenco.dat ); Analogamente per associare uno Stream di output ad un file è necessario utilizzare il costruttore della classe FileOutputStream nel seguente modo: FileOutputStream f = new FileOutputStream( elenco.dat ); In entrambi i casi non specificando nessun path il file verrà cercato nella directory attiva. Queste due classi poiché discendono direttamente dalle classi astratte InputStream e OutputStream possono leggere e scrivere solo byte e array di byte.

5 E necessario che tali flussi vengano assemblati in tipi più utili. Tale assemblaggio viene fatto da oggetti Filter, come per esempio quelli istanziati dalla classe DataInputStream e DataOutputStream, nel seguente modo: Input Output FileInputStream f = new FileInputStream ( elenco.dat ); DataInputStream in = new DataInputStream(f); FileOutputStream f = new FileOutputStream ( elenco.dat,true DataOutputStream out = new DataOutputStream(f); Le classi DataInputStream e DataOutputStream contengono tutti I metodi per la lettura e la scrittura di tutti I tipi Java: DataInputStream readboolean readbyte readchar readdouble readfloat readfully readint readline readlong readshort readutf skip.bytes DataOutputStream writechars writebyte writeint writeshort writelong writefloat writedouble writechar writeboolean writeutf Gli stream non sono bufferizzati. Questo significa che ogni chiamata di lettura o scrittura contatta il S.O. per chiedere o inviare un altro byte. Se si desidera usare un buffer è necessario usare la seguente scrittura: Input FileInputStream f = new FileInputStream ( elenco.dat ); BufferedInputStream b = new BufferedInputStream(f); Output DataInputStream in = new DataInputStream(b); FileOutputStream f = new FileOutputStream ( elenco.dat,true); BufferedOutputStream b = new BufferedOutputStream (f) DataOutputStream out = new DataOutputStream(b); DataInputStream e DataOutputStream sono sempre messi in coda perche sono tali classi ad occuparsi del filtraggio dei bytes letti. Esempio: Scrivere un programma che permetta l archiviazione di libri e la visualizzazione dell intero elenco. Per prima cosa scriviamo la classe Clibro.

6 package myprojects.biblioteca; import java.io.*; class CLibro implements Serializable // Attributi della classe private String Autore = ""; private String Titolo = ""; private String Edizione = ""; private String CasaEditrice = ""; private String Costo = ""; private String Anno = ""; //Costruttore vuoto public CLibro() public CLibro(String Autore,String Titolo,String Edizione,String CasaEditrice,String Costo, String Anno) this.autore = Autore; this.titolo = Titolo; this.edizione = Edizione; this.casaeditrice = CasaEditrice; this.costo = Costo;

7 this.anno = Anno; public void AppendiRecord(String filelibri) try //Associo un Stream al File FileOutputStream f = new FileOutputStream(fileLibri,true); //Creo un buffer associato allo stream BufferedOutputStream b = new BufferedOutputStream(f); //Inserisco un oggetto Filter per la scrittura dei tipi dei singoli attributi DataOutputStream fout = new DataOutputStream(b); //Scrivo I singoli campi fout.writeutf(autore); fout.writeutf(titolo); fout.writeutf(edizione); fout.writeutf(casaeditrice); fout.writeutf(costo); fout.writeutf(anno); //Libero il buffer fout.flush(); //Chiudo lo stream f.close(); catch(exception e)

8 System.out.println("Problemi di scrittura"); public void VisualizzaFile(String filelibri) try // Apro uno stream di Input FileInputStream f = new FileInputStream(fileLibri); // Associo uno stream buffer BufferedInputStream b = new BufferedInputStream(f); // Inserisco un oggetto Filter per la lettura dei singoli attributi DataInputStream fin = new DataInputStream(b); while(true) try System.out.print(fIN.readUTF()+" "); System.out.print(fIN.readUTF()+" "); System.out.print(fIN.readUTF()+" "); System.out.print(fIN.readUTF()+" "); System.out.print(fIN.readUTF()+" "); System.out.print(fIN.readUTF()+"\n"); catch(eofexception e)

9 break; f.close(); catch(exception e) System.out.println("Problemi di lettura"); Dopo aver scritto la classe CLIbro, scriviamo la classe Cbiblioteca package myprojects.biblioteca; import java.io.*; class CBiblioteca implements Serializable public CBiblioteca() // Metodo per la lettura da tastiera private String leggiinput() InputStreamReader input = new InputStreamReader(System.in); BufferedReader tastiera = new BufferedReader(input);

10 String inputstr = ""; try inputstr = tastiera.readline(); catch(exception e) System.out.println("Errore di lettura"); return(inputstr); // Metodo InserisciLibro private void InserisciLibro() System.out.print("Autore :"); String Autore = leggiinput(); System.out.print("Titolo :"); String Titolo = leggiinput(); System.out.print("Edizione :"); String Edizione = leggiinput(); System.out.print("Casa Editrice :"); String CasaEditrice = leggiinput(); System.out.print("Costo :"); String Costo = leggiinput(); System.out.print("Anno :");

11 String Anno = leggiinput(); CLibro libro = new CLibro(Autore,Titolo,Edizione,CasaEditrice,Costo,Anno); libro.appendirecord("libri.txt"); public void VisualizzaLibri() CLibro libro = new CLibro(); libro.visualizzafile("libri.txt"); // Metodo Main public static void main(string args[]) throws Exception int scelta = 0; System.out.println("Starting Biblioteca..."); Biblioteca b = new Biblioteca(); do System.out.println("Menu Biblioteca"); System.out.println("1. Inserisci Libro"); System.out.println("2. Visualizza Libri"); System.out.println("3. Esci"); String sceltastr = b.leggiinput(); scelta = Integer.valueOf(sceltaStr).intValue();

12 switch(scelta) case 1 : b.inseriscilibro(); break; case 2 : b.visualizzalibri(); break; while (scelta!= 3);

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

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

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

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

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

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione.

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione. pag.112 9. Input e output Nell informatica classica il concetto di input e output era strettamente legato all uso dei dispositivi esterni di memorizzazione (dischi, nastri) e quindi al concetto di file,

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

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

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

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

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

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

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO JAVA JAVA Introduzione INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) Cross Platform Web Dinamico Versioni e IDE DIAPOSITIVA 2 1 JAVA La programmazione orientata agli oggetti JAVA La programmazione OOP Nascita

Dettagli

Parte II: Reti di calcolatori Lezione 10

Parte II: Reti di calcolatori Lezione 10 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione

Dettagli

Architettura Client-Server

Architettura Client-Server Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura

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

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

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e

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

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

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

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

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 scrittura e lettura con periferici in linguaggio Java

Operazioni di scrittura e lettura con periferici in linguaggio Java Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println

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

Input e Output in Java

Input e Output in Java Input e Output in Java Stream Redirecting Scomposizione dell input Uso di file Set di caratteri 1 Inserimento dati e test Riconsideriamo la versione iniziale della classe DataSet usata per illustrare le

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

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 JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

Utilizzo delle classi

Utilizzo delle classi Utilizzo delle classi I metodi costruttore ed il loro utilizzo. Alcune classi di ingresso e uscita 2 Classi ed Oggetti predefiniti Oggetti predefiniti Sono presenti nel programma Non è necessario crearli

Dettagli

Programmare con le Socket TCP in java. 2: Application Layer 1

Programmare con le Socket TCP in java. 2: Application Layer 1 Programmare con le Socket TCP in java 2: Application Layer 1 Il Client contatta il server Il Server: Il processo server è sempre attivo in attesa di connessioni (demone) Crea una socket per accettare la

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

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

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

Laboratorio di reti I: Java IO

Laboratorio di reti I: Java IO Laboratorio di reti I: Java IO Stefano Brocchi brocchi@dsi.unifi.it 15 ottobre, 2008 Stefano Brocchi Laboratorio di reti I: Java IO 15 ottobre, 2008 1 / 28 Gli InputStream e gli OutputStream Gli stream

Dettagli

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un

Dettagli

Sviluppo Applicazioni Mobile Lezione 13. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 13. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 13 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

Dettagli

Laboratorio di Informatica Lezione 4

Laboratorio di Informatica Lezione 4 Laboratorio di Informatica Lezione 4 Cristian Consonni 28 ottobre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 4 1 / 42 Outline 1 Canali standard 2 Input da tastiera 3 Output 4 Esercizi (parte

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

10.4. La classe File e gli attributi di directory e file

10.4. La classe File e gli attributi di directory e file pag.143 10.4. La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche

Dettagli

Lezione 18 Le classi per l'input/output nel pacchetto java.io

Lezione 18 Le classi per l'input/output nel pacchetto java.io Lezione 18 Le classi per l'input/output nel pacchetto java.io Il package java.io incapsula le funzionalità di Input/Output (I/O) di Java. Come tutti i programmatori presto imparano, le applicazioni informatiche

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

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

LABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 -

LABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 - LABORATORIO DI INFORMATICA 1 2014-2015 - parte 6 - Lettura da File Obiettivo: leggere un file Per prima cosa dobbiamo creare un oggetto che rappresenti il file che vogliamo utilizzare (inserendo anche

Dettagli

Cifratura simmetrica

Cifratura simmetrica Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave

Dettagli

File, flussi e pacchetto java.io

File, flussi e pacchetto java.io File, flussi e pacchetto java.io Formato binario e formato di testo I dati sono memorizzati nei files in due formati: testo (successione di caratteri) binario (successione di bytes) Ad es. numero 12345

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java. Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java

Dettagli

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

Programmazione Java (Applicazioni e Applet )

Programmazione Java (Applicazioni e Applet ) Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

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

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Libreria standard JAVA

Libreria standard JAVA JDK Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/ JDK Libreria standard

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

La gestione di file e flussi in Java: note introduttive

La gestione di file e flussi in Java: note introduttive Università degli Studi di Palermo Facoltà di Ingegneria La gestione di file e flussi in Java: note introduttive Edoardo Ardizzone & Riccardo Rizzo Appunti per il corso di Fondamenti di Informatica A.A.

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP D (FKR&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: il server attende una connessione da parte del client (su MDYDQHW6HUYHU6RFNHW), usa la

Dettagli

Corso Android New Edition Corso Online Programmatore Android New Edition

Corso Android New Edition Corso Online Programmatore Android New Edition Corso Android New Edition Corso Online Programmatore Android New Edition Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso di Programmatore

Dettagli

Gestione dei File. dischi nastri cd

Gestione dei File. dischi nastri cd Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione

Dettagli

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2) Gestione di errori e situazioni eccezionali Gestione delle eccezioni Una procedura (utente o di libreria) deve poter segnalare l impossibilità di produrre un risultato significativo o la propria terminazione

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

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Programmare con le Socket TCP

Programmare con le Socket TCP Programmare con le Socket TCP Il Client deve contattare il server Il processo server deve già essere attivo Il server deve aver creato una socket che accetta la connessione del client ( socket di benvenuto

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Programmare con le Socket

Programmare con le Socket Programmare con le Socket Corso Reti ed Applicazioni Lab Sockets pag. 1 Programmare con le Socket TCP Il Client deve contattare il server - Il processo server deve già essere attivo - Il server deve aver

Dettagli

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Minicorso tematico: Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare Dott. Francesco Ricca Dipartimento Di Matematica Università della Calabria ricca@mat.unical.it Presentiamoci

Dettagli

Linguaggio Java. Andrea Domenici Scuola Superiore S.Anna

Linguaggio Java. Andrea Domenici Scuola Superiore S.Anna Linguaggio Java Andrea Domenici Scuola Superiore S.Anna 26, 28 e 29 settembre 2000 Indice 1 Il linguaggio: sintassi base 2 1.1 Il classico Hello World......................... 2 1.2 Tipi primitivi ed espressioni......................

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

Dettagli

Lezione n.7 LPR -Informatica applicata Socket e Datagram UDP. 11/4/2013 Laura Ricci

Lezione n.7 LPR -Informatica applicata Socket e Datagram UDP. 11/4/2013 Laura Ricci Università degli Studi di Pisa Lezione n.7 LPR -Informatica applicata Socket e Datagram UDP 11/4/2013 Laura Ricci Laura Ricci 1 COMUNICAZIONE CONNECTION ORIENTED VS. CONNECTIONLESS Comunicazione Connection

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo

C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo File e Flussi C. Horstmann Fondamenti di programmazione e Java 2 3^ edizione Apogeo trad. Nicola Fanizzi corso di Programmazione, CdS: Informatica TPS Dip. di Informatica, Università degli studi di Bari

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Primi programmi in Java. Lezione IV

Primi programmi in Java. Lezione IV Primi programmi in Java Lezione IV Scopo della lezione Realizzare dei semplici programmi scritti in Java. Esercitarsi nelle operazioni necessarie per passare dalla scrittura di codice Java all esecuzione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni GLI ARCHIVI DI DATI File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni» Un file può contenere un testo» Un file può contenere la

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

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi Pila di Oggetti Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577 234850 - interno: 7102 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net

Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Programmazione di rete in Java Java fornisce per la gestione della comunicazione le classi del package di networking java.net Gerarchia delle classi in Java Package java.net le socket rappresentano il

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

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

Main System Monitor Keyboard

Main System Monitor Keyboard Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti

Dettagli

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata. Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

Restrizioni per la sicurezza

Restrizioni per la sicurezza Applets Applet = programma Java che può essere invocato all interno di un file.html ed eseguito da un browser web, es. C:\Files> explorer MioFile.html un appletviewer, es. C:\Files> appletviewer MioFile.html

Dettagli

HARDWARE. Relazione di Informatica

HARDWARE. Relazione di Informatica Michele Venditti 2 D 05/12/11 Relazione di Informatica HARDWARE Con Hardware s intende l insieme delle parti solide o ( materiali ) del computer, per esempio : monitor, tastiera, mouse, scheda madre. -

Dettagli

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno Lezione 5: Socket SSL/ TLS Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno 1 Outline Introduzione Gestione delle chiavi e dei certificati Comunicazione

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Lezione n.3 LPR - Informatica Applicata

Lezione n.3 LPR - Informatica Applicata Lezione n.3 LPR - Informatica Applicata Il Protocollo TCP: 7/3/2013 Laura Ricci Laura Ricci 1 IL PARADIGMA CLIENT/SERVER La tipica applicazione Internet provede due processi in esecuzione su due host geograficamente

Dettagli