Flussi, lettori e scrittori

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Flussi, lettori e scrittori"

Transcript

1 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, Reader, Writer e loro sottoclassi Es: Reader reader = ; int next = reader. read(); if (next!= -1) char c = (char( char) next;

2 Operazioni di I/O con i File Leggere e scrivere sequenze di byte da file su disco: FileInputStream e FileOutputStream FileInputStream in = new FileInputStream( input. ( input.dat ); Leggere dati di testo da un file su disco: FileReader e FileWriter FileReader reader = new FileReader ( input.txt txt );

3 File di Testo La classe BufferedReader con readline() FileReader reader = new FileReader( ( inp.txt ); BufferedReader in = new BufferedReader(reader reader); String inputline = in.readline readline() (); double x = Double.parseDouble parsedouble(inputline); La classe PrintWriter print e println Alla fine: reader.close close() o, per un oggetto writer della classe PrintWriter, writer.close close()

4 La gerarchia delle eccezioni Eccezioni controllate Eccezioni non controllate

5 Esempio: una classe di prodotti import java.io.bufferedreader; import java.io.eofexception; import java.io.ioexception; public class Product { public Product() {... public Product(String aname,, double aprice, int ascore) ) {... public boolean read(bufferedreader in) throws IOException {... public String getname() {... public double getprice() {... public int getscore() {... public void setprice(double newprice) ) {... private String name; private double price; private int score;

6 Esempio: leggere prodotti da un file di testo public boolean read (BufferedReader in) throws IOException { name = in.readline(); // legge il nome del prodotto if (name == null) return false; String inputline = in.readline(); // legge il prezzo del prodotto if (inputline( == null) throw new EOFException ("EOF durante la lettura del prezzo"); price = Double.parseDouble(inputLine); // legge il punteggio del prodotto inputline = in.readline(); if (inputline( == null) throw new EOFException ("EOF durante la lettura del punteggio"); score = Integer.parseInt(inputLine); return true;

7 Esempio prodotti: gestire le eccezioni public void openfile() { BufferedReader in = null; try { // mostra la finestra di dialogo di scelta del file in = new BufferedReader (new FileReader(selectedFile)); readproducts(in); catch(filenotfoundexception e) { JOptionPane.showMessageDialog (null, "Nome del file errato. Prova di nuovo."); catch(ioexception e) { JOptionPane.showMessageDialog (null, "File alterato. Prova di nuovo.");."); finally { if (in!= null) try { in.close(); catch(ioexception e) { JOptionPane.showMessageDialog (null, "Errore" nella chiusura del file.");

8 Esempio prodotti: gestire le eccezioni public void readproducts(bufferedreader in) throws IOException { boolean done = false; while (!done) { Product p = new Product(); if (p.read(in)) panel.addproduct(p); else // ha letto ultimo prodotto done = true;

9 Accesso sequenziale e accesso casuale

10 Accesso sequenziale

11 Record a dimensione variabile e a dimensione fissa

12 Programma Database.java import java.io.ioexception; import java.io.randomaccessfile; public class Database { public static void main(string[] args) { ConsoleReader console = new ConsoleReader(System.in); System.out.println ( Inserire il nome del file di dati:"); String filename = console.readline(); try { RandomAccessFile file = new RandomAccessFile(filename, "rw"); long nrecord = file.length() / RECORD_SIZE; boolean done = false; while (!done) { System.out.println ( Indicare il record da aggiornare (1 - " + nrecord + "), nuovo record (0), uscire (-1)"); int pos = console.readint();

13 if (1 <= pos && pos <= nrecord) // aggiorna il record { file.seek((pos - 1) * RECORD_SIZE); Product p = readproduct(file); System.out.println( Trovato + p.getname() + + p.getprice() + + p.getscore()); System.out.println ( Immettere il nuovo prezzo:"); double newprice = console.readdouble(); p.setprice(newprice); file.seek((pos - 1) * RECORD_SIZE); writeproduct(file, p); else if (pos == 0) // aggiunge un record { System.out.println( Immettere il nuovo prodotto:"); String name = console.readline(); System.out.println( Immettere il prezzo:"); double price = console.readdouble(); System.out.println( Immettere il punteggio:");

14 int score = console.readint(); Product p = new Product(name, price, score); file.seek(nrecord * RECORD_SIZE); writeproduct(file, p); nrecord++; else if (pos == -1) done = true; file.close(); catch(ioexception e) { System.out.println( Eccezione Input/Output + e);

15 /** Legge una stringa di lunghezza f il file dal quale size il numero di caratteri da la stringa alla quale sono stati tolti gli spazi eccedenti */ public static String readfixedstring(randomaccessfile f, int size) throws IOException { String b = "; for (int i = 0; i < size; i++) b += f.readchar(); return b.trim(); /** Scrive una stringa di lunghezza f il file sul quale size il numero di caratteri da scrivere */

16 public static void writefixedstring(randomaccessfile f, String s, int size) throws IOException { if (s.length() <= size) { f.writechars(s); for (int i = s.length(); i < size; i++) f.writechar( '); else f.writechars(s.substring(0, size)); /** Legge un record di un f il file dal quale il prodotto successivo memorizzato nel file. */

17 public static Product readproduct(randomaccessfile f) throws IOException { String name = readfixedstring(f, NAME_SIZE); double price = f.readdouble(); int score = f.readint(); return new Product(name, price, score); /** Scrive un record di un f il file sul quale scrivere */

18 public static void writeproduct(randomaccessfile f, Product p) throws IOException { writefixedstring(f, p.getname(), NAME_SIZE); f.writedouble(p.getprice()); f.writeint(p.getscore()); public static final int NAME_SIZE = 30; public static final int CHAR_SIZE = 2; public static final int INT_SIZE = 4; public static final int DOUBLE_SIZE = 8; public static final int RECORD_SIZE = CHAR_SIZE * NAME_SIZE + DOUBLE_SIZE + INT_SIZE;

19 File di database relazionali

20 Flussi di Oggetti Per scrivere e leggere oggetti possiamo scomporli nelle loro parti elementari e scrivere e leggere queste parti, ma... In Java c è una soluzione più semplice: le classi ObjectOutputStream e ObjectInputStream In un solo colpo scriviamo o leggiamo interi oggetti!

21 L Interfaccia Serializable public class Razionale implements Serializable,,... { Razionale r = new Razionale(3,5); ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream( dati.dat )); out.writeobject (r);

22 o, ancora meglio... Possiamo scrivere (o leggere) in un solo colpo intere collezioni di oggetti: Vector v = new Vector(); String s = Console.readString(); Razionale r = Razionale.parseRaz(s); v.add(r); ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream( dati.dat )); out.writeobject (v);

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint parseint parseint showinputdialog JOptionPanenull null throw BankAccount IllegalArgumentException amount public class BankAccount { public void withdraw(double amount) { if (balance < amount) { // Parametro

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

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

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

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

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

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

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

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

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002.

INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002. INFORMATICA GRAFICA - FONDAMENTI DI INFORMATICA Ing. Civile - Edile/Architettura Dott. Penzo SOLUZIONE PROVA SCRITTA DEL 16/09/2002 Esercizio 4) import fiji.io.simplereader; class Programma{ public static

Dettagli

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2

Capitolo 13: Gestione delle eccezioni. Capitolo 13. Gestione delle eccezioni Apogeo srl Horstmann-Concetti di informatica e fondamenti di Java 2 Capitolo 13 Gestione delle eccezioni 1 Figura 1 La gerarchia delle classi di eccezioni 2 Figura 2 Eccezioni controllate e non controllate 3 File PurseTest.java import javax.swing.joptionpane; import java.io.ioexception;

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

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

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

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

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

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

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

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

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

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

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

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

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

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

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

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

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

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

/** * 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

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

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

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

Lavorare con i File e gestire le Eccezioni

Lavorare con i File e gestire le Eccezioni Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Due modi per memorizzare i dati Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato

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

Esercitazioni Ingegneria del So2ware 3 - Programmazione Java Excep<ons, I/O

Esercitazioni Ingegneria del So2ware 3 - Programmazione Java Excep<ons, I/O Esercitazioni Ingegneria del So2ware 3 - Programmazione Java Excep

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

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

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

Lavorare con i File e gestire le Eccezioni

Lavorare con i File e gestire le Eccezioni Due modi per memorizzare i dati Lavorare con i File e gestire le Eccezioni Anno Accademico 2003/04 Docente modulo 2: Barbara Masucci Formato testo Dati rappresentati come sequenze di caratteri 12345 memorizzato

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

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

Corso di Reti di Calcolatori. java.net.url

Corso di Reti di Calcolatori. java.net.url Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (2 a parte) paolo.trunfio@deis.unical.it 1 java.net.url URL (String spec) crea un oggetto URL

Dettagli

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1

I file WAR. Laboratorio di Tecnologie Lato Server - V.Della Mea e I.Scagnetto, a.a. 2004/05-1 I file WAR WAR è una contrazione di Web ARchive. I file WAR consentono di archiviare un intera applicazione web in un unico file. Tomcat fornisce (tramite il Tomcat Manager) un interfaccia grafica per

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

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

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

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

Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12

Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12 Laboratorio LP2 Esercitazioni aggiuntive Martedì 14-17 -- Laboratorio L-12 ventre@dia.unisa.it Esercizio P14.8 Scrivete un programma Find che cerchi in tutti i file specificati sulla riga di comando una

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

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

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

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

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

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate

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

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Laboratorio di Sistemi Distribuiti Leonardo Mariani Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante

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

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

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

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

Prova d Esame 07.04.2006 Compito A

Prova d Esame 07.04.2006 Compito A DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

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

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

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

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

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria

Dettagli

Esempi di esercizi d esame

Esempi di esercizi d esame Esempi di esercizi d esame Fondamenti di Informatica L-B 1 Cellulare Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un telefono cellulare Tale classe

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

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni delle prove al calcolatore Esercizio 7 (esame del 08/01/2009) class TabellaDiNumeri{ private double[][] tabella;

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

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

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

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

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

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

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona ed ed Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario ed scrittura su in Java ed ed di testo Scrivere stringhe su di testo

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

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Input/Output. Lettura di una serie di numeri: Un programma che analizza una serie di valori. Inserimento dati e test

Input/Output. Lettura di una serie di numeri: Un programma che analizza una serie di valori. Inserimento dati e test Input/Output Stream Redirecting Scomposizione dell input Uso di file Lettura di una serie di numeri: Un esempio di ciclo e mezzo. Schema: boolean finito = false; while (!finito) { String input = legge

Dettagli

Input/Output. Stream Redirecting Scomposizione dell input Uso di file. Laboratorio di Programmazione

Input/Output. Stream Redirecting Scomposizione dell input Uso di file. Laboratorio di Programmazione Input/Output Stream Redirecting Scomposizione dell input Uso di file 1 Lettura di una serie di numeri: Un esempio di ciclo e mezzo. Schema: boolean finito = false; while (!finito) { String input = legge

Dettagli

Lettura di una serie di numeri: Input/Output. Inserimento dati e test. Un programma che analizza una serie di valori

Lettura di una serie di numeri: Input/Output. Inserimento dati e test. Un programma che analizza una serie di valori Lettura di una serie di numeri: Input/Output Redirecting, scomposizione dell input, uso di file Un altro esempio di ciclo e mezzo. Schema: boolean finito = false; while (!finito) { String input = legge

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

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

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

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP D /LQH&OLHQWH6HUYHU Sviluppare un applicazione C/S in cui: i inviano al server pacchetti (vuoti) che vengono interpretati dal server come richiesta

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

Input/Output. Redirecting, scomposizione dell input, uso di file. 26/11/2004 Laboratorio di Programmazione - Luca Tesei 1

Input/Output. Redirecting, scomposizione dell input, uso di file. 26/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Input/Output Redirecting, scomposizione dell input, uso di file 26/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Lettura di una serie di numeri: Un altro esempio di ciclo e mezzo. Schema: boolean

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA8 B2 Accesso diretto 1 Prerequisiti Programmazione ad oggetti Conoscenza classi di base di I/O Tecnica della programmazione Organizzazione ed accesso ai file 2 1 Introduzione

Dettagli

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet:

Servlet e JDBC. Servlet e Web Server. Servlet e Web Server. Servlet e Web Server. Richieste. Servlet. Servlet: e JDBC Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino e : estensioni del Java API permettono di scrivere

Dettagli

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate

IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per

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

Esercitazione 3. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica

Esercitazione 3. Corso di Tecniche di programmazione. Laurea in Ingegneria Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002 degli Esercizi ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int i=0, j=0; int[][] a=b; boolean trovato=false;

Dettagli

Iterazioni. L istruzione while. while (condition) istruzione

Iterazioni. L istruzione while. while (condition) istruzione Iterazioni L istruzione while while (condition) istruzione Ripete l esecuzione di istruzione fino a che la condizione resta vera while (balance < targetbalance) year++; double interest = balance * rate

Dettagli