Java: la libreria delle classi
|
|
- Annalisa Parisi
- 6 anni fa
- Visualizzazioni
Transcript
1 Java: la libreria delle classi Input/Output in Java il package java.io object serialization La programmazione di rete i package java.net e java.rmi 149 Approccio generale La libreria delle classi Java è di una vastità non indifferente Approccio adottato in questo corso: descrizione delle classi fondamentali e delle funzionalità più importanti Per una descrizione più puntuale si consiglia l uso della guida ipertestuale alla libreria di classi 150
2 Input/Output in Java Il package java.io include classi, interfaccie ed eccezioni per la gestione dell I/O Distinguiamo tra due classi di funzionalità: funzionalità per accedere ad informazioni relative ai file ed alle directory Esempio: dimensione dei file, elenco dei file contenuti in una directory,... funzionalità per leggere e scrivere dati 151 Classi per l accesso alle informazioni relative al file system La classe fondamentale per accedere alle informazioni relative ai file ed alle directory è la classe File E fondamentale tenere presenti i problemi di portabilità del codice: path Unix: /bin:/usr/bin:/usr/local/bin Windows: c:\bin;c:\java\bin percorso di un file Unix: /usr/java/bin/javac Windows: c:\java\bin 152
3 La classe File: costanti public static final String separator il separatore di file (stringa) public static final char separatorchar il separatore di file (carattere) public static final String pathseparator il separatore di path (stringa) public static final char pathseparatorchar il separatore di path (carattere) 153 La classe File: esempio 1 import java.io.*; public class Prova { public static void main(string[] arg) { System.out.println(File.separator+" - "+ File.separatorChar+" - "+ File.pathSeparator+" - "+ File.pathSeparatorChar); Output (su Windows): \ - \ - ; - ; 154
4 La classe File: costruttori public File(String path) public File(String path, String name) public File(File dir, String name) 155 La classe File: metodi principali public String getname() public String getpath() public String getparent() può ritornare null se non esiste il parent public boolean exists() public boolean canread() public boolean canwrite() public boolean isfile() public boolean isdirectory() public long lastmodified() public long length() public boolean mkdir() public boolean mkdirs() public boolean renameto(file dest) public String[] list() public String[] list(filenamefilter f) public boolean delete() 156
5 Lettura e scrittura di dati Distinguiamo tra classi per l accesso sequenziale ai dati di utilizzo generale, non limitate ai file classi per l accesso diretto (random) a dati contenuti su file 157 Classi per la lettura e la scrittura sequenziale di dati Il meccanismo di lettura e scrittura sequenziale dei dati è basato sul concetto di stream Uno stream è un oggetto sul quale è possibile leggere e scrivere dati sequenzialmente Il package java.io include numerose classi per la gestione di stream 158
6 Lettura sequenziale di byte Object (from java.lang) File InputStream FileDescriptor ObjectInputStream FileInputStream PipedInputStream ObjectStreamClass SequenceInputStream ByteArrayInputStream FilterInputStream StringBufferInputStream DataInputStream BufferedInputStream LineNumberInputStream PushBackInputStream 159 La classe InputStream Classe astratta che racchiude tutti i metodi per la lettura da uno stream di byte Metodi principali: public void close() public int available() public long skip(long n) public abstract int read() bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(byte b[]) bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(byte b[], int off, int len) bloccante; ritorna -1 se si è raggiunta la fine dello stream 160
7 La classe FileInputStream Usata per l accesso sequenziale a file di byte Ridefinisce i metodi della classe InputStream fornendone una implementazione per i file Costruttori: public FileInputStream(String name) public FileInputStream(File f) public FileInputStream(FileDescriptor fd) Principali metodi aggiunti public final FileDescriptor getfd() 161 La classe FileInputStream: un esempio import java.io.*; public class ProvaFile { public static void main(string[] args) { if(args.length!=1) {System.err.println("Usage: ProvaFile <nome file>");system.exit(-1); File f=new File(args[0]); FileInputStream fis=null; byte[] b; int byteread; if(!f.exists()) System.err.println("Error: file "+args[0]+ " does not exists"); else if(!f.canread()) System.err.println("Error: cannot read from file "+args[0]); else { b=new byte[(int)f.length()]; try{ fis=new FileInputStream(f); byteread=fis.read(b); System.out.println("Bytes read: "+byteread); catch(exception ex) {ex.printstacktrace(); finally {try{fis.close();catch(exception e){e.printstacktrace(); 162
8 La classe FilterInputStream Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro di vario tipo Si appoggia ad un InputStream esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe InputStream 163 La classe BufferedInputStream Sfrutta un buffer interno per ottimizzare la lettura Fornisce prestazioni decisamente superiori alla classica InputStream 164
9 La classe DataInputStream Fornisce metodi per leggere i diversi tipi base del linguaggio Java da un InputStream esistente (passato al momento della costruzione) Sfrutta lo standard UniCode per leggere i dati in maniera indipendente dalla piattaforma Principali metodi aggiunti: readboolean, readbyte, readinteger, readshort, readlong, readfloat, readdouble, readchar, readunsignedbyte, readunsignedshort 165 Gli altri input stream ByteArrayInputStream permette di creare un InputStream a partire da un array di byte (usato come sorgente di informazioni) PipedInputStream usato per leggere da una pipe SequenceInputStream usato per leggere da una sequenza di InputStream come se fossero uno solo PushbackInputStream permette di rimandare indietro uno o più byte letti LineNumberInputStream e StringBufferInputStream l uso di queste classi è stato superato nella versione 1.1 di Java dall introduzione delle classi Reader 166
10 Output sequenziale Object (from java.lang) OutputStream ObjectOutputStream PipedOutputStream ByteArrayOutputStream FilterOutputStream FileOutputStream DataOutputStream BufferedOutputStream PrintStream 167 La classe OutputStream Classe astratta che racchiude tutti i metodi per la scrittura da uno stream di byte Metodi principali: public void close() public void flush() public abstract void write(byte b) public void write(byte b[]) public void write(byte b[], int off, int len) 168
11 La classe FileOutputStream Usata per la scrittura di file sequenziali di byte Ridefinisce i metodi della classe OutputStream fornendone una implementazione per i file Costruttori: public FileOutputStream(String name) public FileOutputStream(String name, boolean app) public FileOutputStream(File f) public FileOutputStream(FileDescriptor fd) Principali metodi aggiunti public final FileDescriptor getfd() 169 La classe FileOutputStream: esercizio Si scriva un programma Java che svolge le stesse funzioni del comando copy di dos 170
12 La classe FilterOutputStream Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro di vario tipo Si appoggia ad un OutputStream esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe OutputStream 171 La classe BufferedOutputStream Sfrutta un buffer interno per ottimizzare la scrittura di dati Fornisce prestazioni decisamente superiori alla classica OutputStream 172
13 Le classi buffered: esercizio Si riscriva l esercizio precedente (copy) sfruttando le classi buffered per ottimizzare le prestazioni 173 La classe DataOutputStream Fornisce metodi per scrivere i diversi tipi base del linguaggio Java da un OutputStream esistente (passato al momento della costruzione) Sfrutta lo standard UniCode per scrivere i dati in maniera indipendente dalla piattaforma Principali metodi aggiunti: writeboolean, writebyte, writeinteger, writeshort, writelong, writefloat, writedouble, writechar, writeunsignedbyte, writeunsignedshort 174
14 Gli altri output stream ByteArrayOutputStream permette di creare un OutputStream a partire da un array di byte (usato come sorgente di informazioni) PipedOutputStream usato per scrivere su una pipe PrintStream l uso di questa classe è stato superato nella versione 1.1 di Java dall introduzione delle classi Writer 175 Lettura e scrittura sequenziale di testo Le classi Reader e Writer inglobano le funzionalità per leggere stream sequenziali di caratteri 176
15 Reader Object (from java.lang) Reader PipedReader StringReader CharArrayReader BufferedReader FilterReader InputStreamReader LineNumberReader PushbackReader FileReader 177 La classe Reader Classe astratta che racchiude tutti i metodi per la lettura da uno stream di caratteri Metodi principali: public void close() public long skip(long n) public abstract int read() bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(char c[]) bloccante; ritorna -1 se si è raggiunta la fine dello stream public int read(char c[], int off, int len) bloccante; ritorna -1 se si è raggiunta la fine dello stream 178
16 La classe InputStreamReader Costituisce il ponte tra gli stream di byte e quelli di caratteri Effettua la conversione da byte a caratteri in maniera dipendente dal particolare encoding adottato Costruttori: public InputStreamReader(InputStream is) public InputStreamReader(InputStream is, String encoding) 179 La classe FileReader Usata per l accesso sequenziale a file di caratteri Ridefinisce i metodi della classe InputStreamReader fornendone una implementazione specifica per i file di caratteri Costruttori: public FileReader(String name) public FileReader(File f) public FileReader(FileDescriptor fd) 180
17 La classe FileReader: un esempio import java.io.*; public class ProvaFile { public static void main(string[] args) { if(args.length!=1) {System.err.println("Usage: ProvaFile <nome file>");system.exit(-1); File f=new File(args[0]); FileReader fr=null; char[] c; int charread; if(!f.exists()) System.err.println("Error: file "+args[0]+ " does not exists"); else if(!f.canread()) System.err.println("Error: cannot read from file "+args[0]); else { c=new char[(int)f.length()]; try{ fr=new FileReader(f); charread=fr.read(c); System.out.println(new String(c)); catch(exception ex) {ex.printstacktrace(); finally {try{fr.close();catch(exception e){e.printstacktrace(); 181 La classe FilterReader Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro su stream di caratteri Si appoggia ad un Reader esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe Reader 182
18 La classe BufferedReader Sfrutta un buffer interno per ottimizzare la lettura Si appoggia ad un Reader esistente (passato al momento della costruzione) Fornisce prestazioni decisamente superiori alla classica Reader Metodi aggiunti public String readline() 183 Gli altri Reader CharArrayReader un reader a partire da un array di caratteri StringReader un reader a partire da una stringa PushbackReader permette di rimandare indietro uno o più caratteri letti LineNumberReader public void setlinenumber(int ln) 184
19 Writer Object (from java.lang) Writer PipedWriter StringWriter CharArrayWriter BufferedWriter FilterWriter OutputStreamWriter PrintWriter FileWriter 185 La classe Writer Classe astratta che racchiude tutti i metodi per la scrittura da uno stream di caratteri Metodi principali: public void close() public void flush() public abstract void write(int) public void write(char c[]) public int write(char c[], int off, int len) public void write(string s) public int write(string s, int off, int len) 186
20 La classe OutputStreamWriter Costituisce il ponte tra gli stream di byte e quelli di caratteri Effettua la conversione da byte a caratteri in maniera dipendente dal particolare encoding adottato Costruttori: public OutputStreamWriter(OutputStream is) public OutputStreamWriter(OutputStream is, String encoding) 187 La classe FileWriter Usata per la scrittura sequenziale di file di caratteri Ridefinisce i metodi della classe OutputStreamWriter fornendone una implementazione specifica per i file di caratteri Costruttori: public FileWriter(String name) public FileWriter(File f) public FileWriter(FileDescriptor fd) 188
21 La classe FilterWriter Si tratta della sopraclasse di tutte le classi che forniscono funzionalità di filtro su stream di caratteri Si appoggia ad un Writer esistente (passato al momento della costruzione) Fornisce tutti i metodi della classe Writer 189 La classe BufferedWriter Sfrutta un buffer interno per ottimizzare la scrittura Si appoggia ad un Writer esistente (passato al momento della costruzione) Fornisce prestazioni decisamente superiori alla classica Writer Metodi aggiunti public void newline() 190
22 Reader e writer: esercizio Si scriva un programma che copia un file di testo sostituendo i termini incontrati come specificato su linea di comando Si scriva un programma che legge un file di testo e stampa a video solo le linee contenenti una certa stringa passata come parametro (grep) 191 Gli altri Writer CharArrayWriter un writer a partire da un array di caratteri StringWriter un writer a partire da una stringa PrintWriter permette la stampa di tutti i tipi base di Java come stringhe fornisce metodi analoghi a quelli dell oggetto System.out 192
23 I file ad accesso diretto (random) Gestiti attraverso i servizi della classe RandomAccessFile fornisce metodi per leggere e scrivere dati funzionalità per l accesso diretto: public long getfilepointer() public native void seek(long pos) 193 Altre classi del package java.io La classe StreamTokenizer fornisce funzionalità avanzate per estrarre token da uno stream di caratteri E possibile decidere liberamente i separatori da adottare 194
24 Object serialization Meccanismo che permette la lettura e scrittura di qualsiasi oggetto Java su uno stream Realizza una deep copy a partire da un oggetto vengono copiati sullo stream tutti gli oggetti ad esso collegati (direttamente o indirettamente) Gli oggetti devono implementare l interfaccia Serializable Vengono letti e scritti tutti gli attributi non static e non transient Sfrutta le classi ObjectInputStream e ObjectOutputStream Permette una semplice implementazione di oggetti persistenti 195 La programmazione di rete Consente la comunicazione tra applicazioni Java che risiedono su macchine diverse Si possono sfruttare i socket (TCP o UDP) o la più avanzata libreria RMI 196
25 Socket TCP Le classi per la gestione dei socket (TCP o UDP) sono parte del package java.net Schema logico di funzionamento di una applicazione client/server basata su socket TCP Una applicazione server rimane in attesa su una porta logica Una applicazione client apre una connessione verso la macchina sulla quale gira il server specificando la porta Il server riceve la connessione e apre una canale di comunicazione In genere i server sono applicazioni multithreaded un thread per ogni connessione aperta più un server in attesa di nuove connessioni 197 La classe ServerSocket Usata per realizzare server che attendono connessioni TCP Costruttore principale: public ServerSocket(int port) Metodi principali: public synchronized void setsotimeout(int timeout) permette di scegliere un timeout per la accept (in millisecondi) public synchronized int getsotimeout() public Socket accept() bloccante se timeout=0 public InetAddress getinetaddress() public int getlocalport() public void close() 198
26 La classe Socket Costruttori principali: public Socket(String host, int port) public Socket(InetAddress host, int port) Metodi principali: public InetAddress getinetaddress() public InetAddress getlocaladdress() public int getport() public int getlocalport() public InputStream getinputstream() public OutputStream getoutputstream() public void close() public synchronized void setsotimeout(int timeout) permette di scegliere un timeout per la lettura dei byte dall InputStream associato (in millisecondi) public synchronized int getsotimeout() 199 I socket TCP: un esempio import java.net.*; import java.io.*; public class ProvaServerTCP { public static void main(string[] args) { ServerSocket serversocket = null; try { serversocket = new ServerSocket(4444); catch (IOException e) { System.out.println("Could not listen on port: " ", "+e);system.exit(-1); Socket socket = null; while(true) { try { socket = serversocket.accept(); new ServerThread(socket).start(); catch (IOException e) { System.out.println("Accept failed: " ", " + e); System.exit(1); class ServerThread extends Thread { Socket socket; public ServerThread(Socket s) { socket=s; public void run() { try { BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()) ); String inputline; while ((inputline=br.readline())!=null){ System.out.println(inputLine); if (inputline.equals("bye.")) break; br.close(); socket.close(); catch (IOException ex) {e.printstacktrace(); 200
27 I socket TCP: esercizio Scrivere un programma Java che si colleghi al server precedentemente descritto ed invii una serie di stringhe prima di terminare con la stringa Bye. 201 I socket UDP Il protocollo UDP costituisce una alternativa al protocollo TCP E caratterizzato dall essere un protocollo unreliable e connectionless Fornisce però prestazioni superiori Connessioni UDP si realizzano in Java sfruttando i servizi delle classi DatagramPacket e DatagramSocket 202
28 Le altre classi del package java.net Il package java.net fornisce altre classi per: usare gli URL sfruttare il protocollo HTTP sfruttare i servizi forniti dal multicast IP 203 Remote Method Invocation Attraverso i servizi RMI è possibile invocare metodi su un oggetto remoto Un oggetto remoto è ogni oggetto che implementi una interfaccia che estende l interfaccia java.rmi.remote Gli oggetti remoti si comportano come gli oggetti tradizionali è possibile passare riferimenti ad oggetti remoti nelle chiamate a metodo La differenza principale riguarda il passaggio di parametri non remoti a metodi di oggetti remoti il passaggio è fatto per copia (i parametri devono essere serializable) Lo stesso vale per i valori di ritorno restituiti da metodi di oggetti remoti 204
29 Implementazione di una applicazione client/server basata su RMI: server Si crea una interfaccia che descriva i servizi forniti dal server (che estenda java.rmi.remote) tutti i metodi devono dichiarare di sollevare l eccezione java.rmi.remoteexception Si implementa il server come sottoclasse di java.rmi.server.unicastremoteobject come classe generica che reimplementi i metodi equals, hashcode e tostring in maniera da mantenere la semantica corretta in tal caso il server deve essere esplicitamente esportato per essere visibile ai client (metodo java.rmi.server.unicastremoteobject.exportobject) il server può essere registrato sul rmiregistry attraverso un nome simbolico il server dovrebbe impostare come security manager un RMISecurityManager Si compila il server Si creano le classi stub e skeleton attraverso il compilatore rmic Si lancia il server 205 Implementazione di una applicazione client/server basata su RMI: client Si implementa il client Il client ottiene un riferimento all oggetto remoto passato da altri oggetti ottenuto accedendo all rmiregistry Il client può invocare tutti i metodi elencati nell interfaccia remota implementata dal server Non occorre un particolare processo di compilazione per il client 206
30 Implementazione di una applicazione client/server basata su RMI: rmiregistry Il rmiregistry fornisce un servizio di directory per RMI Un server RMI si può registrare su un rmiregistry attraverso un nome simbolico Un client RMI può: ottenere un riferimento ad un server RMI indicando il nome simbolico chiedere la lista dei server disponibili Tali servizi sono realizzati attraverso le classi: java.rmi.naming java.rmi.registry.locateregistry java.rmi.registry.registry e l eseguibile rmiregistry 207 Esempio RMI: l interfaccia del server import java.rmi.*; public interface ProvaRMIServer extends Remote { public void print(string s) throws RemoteException; 208
31 Esempio RMI: l implementazione del server import java.rmi.*; import java.rmi.server.unicastremoteobject; public class ProvaRMIServerImpl extends UnicastRemoteObject implements ProvaRMIServer { public static void main(string[] args) { try { System.setSecurityManager(new RMISecurityManager()); ProvaRMIServerImpl server = new ProvaRMIServerImpl(); Naming.rebind("polimi/ProvaRMIServer", server); System.out.println("Server bound"); catch (Exception e) { e.printstacktrace(); public ProvaRMIServerImpl() throws RemoteException { public void print(string s) throws RemoteException { System.out.println(s); 209 Esempio RMI: il client import java.rmi.*; public class ProvaRMIClient { public static void main(string[] args) { try { System.out.println("Looking up server..."); ProvaRMIServer server = (ProvaRMIServer) Naming.lookup("rmi://"+args[0]+"ProvaRMIServer"); System.out.println("Server bound..."); server.print("prima prova"); server.print("seconda prova"); catch (Exception e) { e.printstacktrace(); 210
32 Esempio RMI: la compilazione javac ProvaRMIServerImpl compila il server java ProvaRMIClient compila il client rmic ProvaRMIServerImpl crea le classi ProvaRMIServer_Skel e ProvaRMIServer_Stub rmiregistry lancia il registry java ProvaRMIServerImpl lancia il server java ProvaRMIClient localhost lancia il client dicendo di collegarsi a localhost 211 Il deployment Le classi stub devono essere accessibili al client (attraverso un opportuno class loader) Il caso delle applet le classi stub devono essere inserite nella stessa directory della classe dell applet (sul server http) il classloader usato è AppletClassLoader il server RMI deve girare sullo stesso host su cui gira il server http dal quale viene scaricata l applet 212
INPUT OUTPUT
INPUT OUTPUT Il package java.io include classi, interfacce ed eccezioni per la gestione dellʼi/o. Si può distinguere tra due classi di funzionalità: per leggere e scrivere dati (anche in maniera indipendente
DettagliLettura 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
DettagliLETTURA 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
DettagliA. 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
DettagliInput/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
DettagliA. 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
DettagliINPUT 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
DettagliLettura 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
DettagliJav@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
DettagliJAVA - 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
DettagliProgrammazione 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
DettagliIndice. 1 Java I/O API. Indice
Indice Indice 1 Java I/O API 1 1.1 Flussi di byte in input/output....................................... 2 1.2 Leggere e scrivere su file......................................... 4 1.3 Flussi di caratteri
DettagliJava I/O API. Java I/O. G. Grossi. 10 gennaio G. Grossi Lezione 11
Java I/O G. Grossi 10 gennaio 2007 Indice 1 Java I/O API Il sistema I/O: questioni generali Creare un buon sistema I/O è uno dei compiti più difficili per i progettisti di linguaggi Questo fatto è evidenziato
DettagliIl package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera.
IL PACKAGE JAVA.IO Il package java.io fornisce le classi necessarie per effettuare input e output su file/rete/console/aree di memoria RAM eccetera. Il package può essere classificato secondo vari punti
DettagliCorso 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
DettagliArchitettura 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
DettagliProgrammazione distribuita in Java. Socket & Client-Server
Programmazione distribuita in Java Socket & Client-Server 1 Strumenti per networking Libreria java.net Socket (Astrazione per una presa di comunicazione) Serializzazione Socket Per comunicare si apre una
DettagliInput/Output in Java
Input/Output in Java 1 Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video Con il file system per leggere e salvare
DettagliInformatica. 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
DettagliPROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 5 Cosa faremo oggi 2 Comunicazione tramite TCP socket Comunicazione tramite UDP socket RIPASSO: Input Output 3 In
DettagliFondamenti 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
DettagliJava I/O e serializzazione
Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilità di combinare classi differenti. Modalità di interazione distinte
DettagliLa 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
DettagliIl 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
DettagliLETTURA E SCRITTURA DI FILE
LETTURA E SCRITTURA DI FILE (slide: A. Baratè L.A. Ludovico) Programmazione per la Musica Adriano Baratè LA CLASSE FILE La classe File fornisce una rappresentazione astratta del percorso (pathname) di
DettagliFile 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
DettagliServer Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione
Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client
DettagliSockets in Java. Lorenzo Gallucci
Sockets in Java Lorenzo Gallucci Sockets La libreria Java dispone di un API per la gestione dell I/O di rete Il package di riferimento è java.net Vari compiti: Gestione dell I/O su socket (sia TCP che
DettagliGestione 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
Dettagli02CBI - M. Morisio. I/O in Java. Input Output. Classi di Primo Livello - java.io. Stream. Pag. 1
Input Output I/O in Java Stream Buffer File StringTokenizer, StreamTokenizer Serializzazione Stream Stream Tutte le operazioni di I/O si riferiscono all astrazione dello STREAM (flusso di byte) Uno stream
DettagliAgent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A
Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è
DettagliJava I/O e serializzazione
Java I/O e serializzazione Caratteristiche dell I/O in Java Diverse classi per gestire I/O differenti sotto un unica struttura. Possibilita di combinare classi differenti. Modalita di interazione distinte
DettagliInput/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
DettagliOrganizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation
Organizzazione della lezione Lezione 12 Introduzione a Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi
DettagliIL PACKAGE java.io CONCETTO BASE: LO STREAM
IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione
DettagliRETI 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
DettagliIL PACKAGE java.io. Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione.
IL PACKAGE java.io Il package java.io definisce i concetti base per gestire l'i/o da qualsiasi sorgente e verso qualsiasi destinazione. CONCETTO BASE: LO STREAM Uno stream è un canale di comunicazione
DettagliLaboratorio 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
DettagliRiassunto. 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
DettagliRiassunto. 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
DettagliIl 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
DettagliGestione 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
DettagliSocket (TCP/IP) Socket (TCP/IP) Concetto di socket. Cenni (reti)
Socket (TCP/IP) M. Danelutto LPRb A.A. 2007-2008 Socket (TCP/IP) M. Danelutto LPRb A.A. 2007-2008 Concetto di socket Astrazione presa di rete Comunicazione fra processi su macchine diverse O fra processi
DettagliI/O Streams in Java. Lorenzo Gallucci
I/O Streams in Java Lorenzo Gallucci I/O Streams La libreria Java dispone di un API sofisticata per l interfacciamento I/O Il package di riferimento è java.io Due classi principali InputStream, per l input
DettagliPrincipi, Modelli e Applicazioni per Sistemi Distribuiti M
Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura
DettagliVariabili 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
DettagliVariabili 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
DettagliLaboratorio 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
DettagliJava. Il package java.io
Java Il package java.io Flussi e canali I flussi permettono operazioni di I/O bloccanti (java.io) I canali permettono operazione di I/O oltre che bloccanti anche operazioni non bloccanti (java.nio) 1 IL
DettagliProgrammazione 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
Dettagli14 Input-Output. Outline. Goal della lezione. Argomenti. Mirko Viroli a.a. 2013/2014
14 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 013/014 Mirko Viroli (Università di Bologna) OOP14: I/O
DettagliCreazione, eliminazione, lettura e scrittura di file di testo
Creazione, eliminazione, lettura e scrittura di file di testo Creazione Java mette a disposizione degli sviluppatori diverse classi per lavorare con i file di testo, analizziamo le principali: java.io.file
DettagliOrganizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello
Organizzazione della lezione Lezione 14 Remote Method Invocation - 2 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno
DettagliCorso 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
Dettagli15 Input-Output. Mirko Viroli C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena
15 Input-Output Mirko Viroli mirko.viroli@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 2015/2016 Mirko Viroli (Università di Bologna) OOP15:
DettagliLETTURA 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
DettagliEsercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio
Esercitazione di Laboratorio 5/12/2007 Sviluppare un applicazione RMI per la gestione di un elezione. Il server esporta un insieme di metodi: public void vota(string nome): accetta come parametro il nome
DettagliEsercizi su Callback RMI
Esercizi su Callback RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 03/12/2008 Esercizio Settimana Scorsa Sviluppare un applicazione RMI per la gestione
DettagliCorso di Reti di Calcolatori L-A
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client
DettagliPROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 6 Cosa faremo oggi 2 Comunicazione RMI Comunicazione RMI Multi-Thread Remote Method Invocation 3 L obiettivo è di
DettagliCreazione, 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
DettagliLPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio
LPR 2005/2006 Lezione 7 paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio PARADIGMA DI INTERAZIONE A DOMANDA/RISPOSTA Paradigma di interazione
DettagliEsercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server
Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto
DettagliApplicazioni web. Parte 10 Socket. Alberto Ferrari
Applicazioni web Parte 10 Socket Protocolli I computer collegati ad Internet comunicano tra loro usando il Transmission Control Protocol (TCP) o lo User Datagram Protocol (UDP) Quando si scrivono programmi
DettagliModello client-server
Modello -server Il server fornisce servizi sulla rete Viene eseguita l applicazione server su un host L applicazione attende connessioni dalla rete Il usufruisce del servizio attraverso la rete Deve conoscere
DettagliCorso di Reti di Calcolatori T
Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019
DettagliSocket in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 17 -
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 17 - Socket in Java 1 Java in
DettagliJava I/O. Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi.
Java I/O Corso di Programmazione CdS: Informatica e Tecnologie per la Produzione di Software Nicola Fanizzi fanizzi@di.uniba.it Introduzione Spesso un programma deve acquisire dati da una sorgente o inviare
DettagliProgrammazioneJava. 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
DettagliCorso 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
DettagliLezione 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
Dettaglidomenica 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
Dettagli9. Java: Introduzione al Networking
9. Java: Introduzione al Networking Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Networking
DettagliIntroduzione. 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
DettagliLezione 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
DettagliLettura e scrittura di dati
Il package java.io Lettura e scrittura di dati I dati possono provenire/essere inviati su molte sorgenti/destinazioni Memoria Dischi Rete In ogni caso un uno stream sorgentre/streeam destinazione deve
Dettagli20/12/2010. Package java.net (Socket ServerSocket) Package java.rmi (uso di oggetti remoti)
Package java.net (Socket ServerSocket) Package java.rmi (uso di oggetti remoti) La classe URL cattura il concetto di indirizzo Internet (URL) nella forma standard: http://localhost/index.html file:///autoexec.bat
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 09 - I/O in Java. Il package java.io
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 09 - I/O in Java 1 Il package
DettagliLezione n.7 LPR- Informatica Applicata
Lezione n.7 LPR- Informatica Applicata 26/3/2006 Laura Ricci Laura Ricci 1 RIASSUNTO DELLA LEZIONE Riepilogo caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server
DettagliRemote Method Invocation
JAVA RMI LSO 2008 Remote Method Invocation Perché RMI? L obiettivo è di permettere ad una applicazione in esecuzione su una macchina locale di invocare i metodi di un oggetto in esecuzione su un altro
Dettagli789:;<:' .&+/"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&$%
DettagliOrganizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota
Organizzazione della lezione 10. Invocazione di Metodi Remoti Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Modelli di programmazione:
DettagliLaurea in Informatica. "Programmazione Distribuita" - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione
12. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Modelli di programmazione:
Dettagli10. Invocazione di Metodi Remoti
10. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.
DettagliPACKAGE DI I/O. Dott. Riccardo Zese.
PACKAGE DI I/O Dott. Riccardo Zese riccardo.zese@unife.it Comunicare con il mondo Praticamente ogni programma ha la necessità di comunicare con il mondo esterno Con l utente attraverso tastiera e video
DettagliJava in Rete. Socket in Java. Linguaggi. Corso di Laurea Ingegneria Informatica (M-Z) A.A
Linguaggi Corso di Laurea Ingegneria Informatica (M-Z) A.A. 2006-2007 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Socket in Java 1 Java in Rete Java permette
DettagliLPR A 2005/2006 Lezione 5. Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi
LPR A 2005/2006 Lezione 5 Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi DATAGRAM SOCKET API: RIASSUNTO DELLE PUNTATE PRECEDENTI un Datagram
DettagliInterfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable?
Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Interfaccia Comparable class Contatore implements Comparable
DettagliASD: Sistemi Distribuiti (Prof. Scarano) 07/05/2002
Organizzazione della lezione 9. Java: Introduzione al Networking Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Networking
DettagliCorso di Reti di Calcolatori LA
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LA RMI: callback Silvia Vecchi Anno accademico 2003/2004 RMI: Callback 1 Callback (1) Molte applicazioni richiedono
Dettagli(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
DettagliEsercitazione 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
DettagliSocket & RMI Ingegneria del Software - San Pietro
Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la
DettagliLinguaggi. I/O in Java. - lezione 09 - Corso di Laurea in Ingegneria delle Telecomunicazioni A.A
Linguaggi Corso di Laurea in Ingegneria delle Telecomunicazioni A.A. 2010-2011 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 09 - I/O in Java 1 Il
Dettagli