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



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

Corso sul linguaggio Java

Il linguaggio Java I file sequenziali

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

Operazioni di scrittura e lettura con periferici in linguaggio Java

Parte II: Reti di calcolatori Lezione 12

20 - Input/Output su File

Parte II: Reti di calcolatori Lezione 10

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

Flussi, lettori e scrittori

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

Corso di Reti di Calcolatori L-A

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

Architettura Client-Server

Input/Output in Java

Un oggetto per la lettura dalla tastiera

Unità B3 Strutture di controllo

Informatica. Prof. A. Longheu. Input e Output

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

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

Gestione delle Eccezioni

Introduzione al Linguaggio C

Gestione dei File in C

Corso sul linguaggio Java

Cifratura simmetrica

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Laboratorio di Informatica Lezione 4

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

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

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

LABORATORIO DI INFORMATICA parte 6 -

Corso sul linguaggio Java

Utilizzo delle classi

Esercitazioni aggiuntive Martedì Laboratorio L-12

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

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

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

Socket & RMI Ingegneria del Software - San Pietro

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

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

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

Programmare con le Socket

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

La selezione binaria

Programmare con le Socket TCP

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

Gestione dei File. dischi nastri cd

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

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

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

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Modulo 2: Strutture fondamentali della programmazione Java

Introduzione. Java. Streams. Streams

Le basi del linguaggio Java

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

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

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Gestione delle eccezioni in Java

Test di unità con JUnit4

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

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:

Convertitori numerici in Excel

A. Ferrari Stream e File

PROVA FINALE Ingegneria del software

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

Introduzione alla programmazione in C

Fasi di creazione di un programma

Client e Server comunicano tramite il protocollo SOAP.

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

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

Fondamenti di Informatica C Esercitazioni di Laboratorio / 4 Outline

A. Ferrari Java: Stream e File

Lezione 16 programmazione in Java

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Eclipse. Avviare un progetto e compilare un semplice programma

Modulo 4: Ereditarietà, interfacce e clonazione

Java threads (2) Programmazione Concorrente

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

La paninoteca. Mi resta da scrivere solo costo()

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

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

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Architettura MVC-2: i JavaBeans

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Main System Monitor Keyboard

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Caratteri Input da Console

Reti di Calcolatori:

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

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

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

LETTURA DI DATI DA INPUT

Struttura di un programma Java

Transcript:

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) su una sorgente di informazione (la tastiere,un file la memoria o la rete) e legge le informazioni come una sequenza di byte 2

Allo stesso modo un programma può inviare informazioni ad una destinazione aprendo un flusso (Stream) su una destinazione di informazione (il Monitor,un file, la memoria o la rete) e scrivere le informazioni sequenzialmente. 3

Package java.io Il package java.io contiene una vastissima collezione di oggetti per usare gli stream. Essi sono catalogati in due gerarchie di categorie : 4

Streams di caratteri 5

Streams di byte 6

Il package java.io Flussi di input: hanno una sorgente Per dati binari, usare la classe InputStream Per caratteri, usare la classe Reader Flussi di output: hanno una destinazione Per dati binari, usare la classe OutputStream Per caratteri, usare la classe Writer Tutte queste classi sono nel package java.io Per usarle import java.io.*; 7

Input/output in Java La classe System Definisce 3 flussi standard 1. in per la tastiera 2. out per il monitor 3. err per gli errori indirizzato ancora sul monitor 8

System.in: oggetto di tipo InputStream Metodi: Public Int read(void) throws IOException Legge un singolo carattere, ritorna il carattere letto o -1 se si raggiunge la fine dello stream public int read(char[ ] cbuf, int offset, int length) throws IOException Legge lenght caratteri e li memorizza nel buffer cbuf a partire dall indirizzo offset Ritorna il numero di caratteri letti o -1 se fine stream 9

System.out: Oggeto di tipo OutputStream Metodi: Public void print(dato) throws IOException Dato può essere uno dei tipi primitivi o una stringa o un oggetto. public void println(dato) throws IOException Dato può essere uno dei tipi primitivi o una stringa o un oggetto. In più va a capo. 10

Operazioni di Input/Output Utilizzando gli oggetti InputStream e OutputStream possiamo fare operazioni soddifacenti per l output. Nelle operazioni di input spesso occorre leggere una stringa infatti anche un numero ad esempio 134 èuna stringa costituita dai singoli caratteri 1 3 e 4 che poi diventeranno valore numerico mediante conversione. 11

La classe BufferedReader Questa classe mette a disposizione dei metodi per leggere in modo bufferizzato. Cioè non singoli caratteri ma sequenze di caratteri terminati da invio. Questa classe mette a disposizione tra gli altri il seguente metodo: public String readline() throws IOException Legge una riga d testo 12

Utilizzare la classe BufferedReader Bisogna innanzitutto creare un oggetto di tipo InputStreamReader: InputStreamReader isr= new InputStreamReader(System.in) in pratica si crea un oggetto lettore di flusso collegato alla tastiera (System.in) BufferedReader bd= new Buffered Reader(isr); e con il lettore di flusso si crea un lettore bufferizzato A questo punto sarebbe possibile leggere una linea di testo String linea; linea=bd.readline(); 13

Le Eccezioni Un eccezione è un comportamento errato o anomalo che si presenta mentre un programma è in esecuzione. Per esempio division by zero (arithmetic exception) leggere un numero con la virgola quando ne è previsto uno intero (number format exception) scrivere su un file che non esiste (I/O exception) fare riferimento ad un carattere inesistente di una stringa (index out of bounds exception). Java mette a disposizione un sofisticato metodo di gestione di eventuali mal funzionamenti individuando quando è pssibile una sorgente di malfunzionamento. In questi casi ci obbliga a gestire una eccezione mediante un costrutto chiamato try catch. 14

Utilizzo di try.. catch In pratica il concetto può essere spiegato dicendo che dove è previsto un mal fnzionamento non eseguo l istuzione ma provo (try) ad esguirla e se si verifica un mal funzionamento catturo (catch) il messaggio che java mi invia. In pratica il codice di prima dobbiamo scriverlo: String linea; InputStreamReader isr= new InputStreamReader(System.in); BufferedReader bd= new Buffered Reader(isr); try { linea = bd.readline(); } catch (IOException e) { e.printstacktrace(); } 15

Gestione dell input output Per quanto visto precedentemente nella programmazione java è sempre conveniente suddividere il proprio programma in almeno due oggetti: Un user interface object Un computational object 16

Gestione dell input output Ad esempio in una applicazione console application la nostra applicazione potrebbe essere schemtizzata come nella figura seguente 17

Esempio di interfaccia di input/output import java.io.*; public class IO { private BufferedReader reader; public IO() { reader = new BufferedReader (new InputStreamReader(System.in)); } public String gettastierastring() { return readtastiera();} public int gettastierainteger() { return Integer.parseInt(readTastiera());} public double gettastieradouble() { return Double.parseDouble(readTastiera());} public void display(string s) { System.out.print(s); } private String readtastiera() { String line = ""; try { line = reader.readline(); } catch (IOException e) { e.printstacktrace();} return line; } } 18