Java Stream e File.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

IL PACKAGE java.io Il package java.io definisce quattro
Accesso ai dati su file Lab. Sistemi Informativi Economico-Aziendali Accesso ai dati su file Localizzazione dei dati File system locali e distribuiti Protocolli.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Java Stream e File. La classe File Per operare con lintero file java mette a disposizione la classe File Per utilizzare la classe File è necessario importare.
Informatica Recupero debito quarto anno Terzo incontro.
12/11/2004Laboratorio di Programmazione - Luca Tesei1 Caratteri – Input da Console Il tipo char Input dallo standard input.
26/11/2004Laboratorio di Programmazione - Luca Tesei1 Input/Output Redirecting, scomposizione dellinput, uso di file.
File System Cos’è un File System File e Directory
Java: programmazione concorrente con condivisione di memoria
Algoritmi e Programmazione
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Operazioni di I/O da console e da file in C standard
SC che operano su file (1)
Interfaccia del file system
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
File.
Laboratorio di Linguaggi lezione VI Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Fisica Computazionale I - 51 OPERAZIONI DI INPUT/OUTPUT Le operazioni di input/output sono estremamente complesse perche' implicano una sostanziale interazione.
Introduzione agli stream e alle classi
ingredienti fondamentali e tecniche di base
Java Serialization.
Esercizio: Copiare un file in un nuovo file mediante le funzioni read e write.
I File.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persi-stenza dei dati) è necessario poterli archi-viare.
JAVA E LA RETE L’architettura Java è network-ready
Programmazione in Java (9) Mauro Lorenzutti. 30/09/2005Corso Java - Mauro Lorenzutti2 Scaletta I/O Evoluto Serializzazione Comunicazioni via socket JUnit.
File I record.
File ad accesso casuale o random
Cosa è una applicazione distribuita?
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
Conversione da base 10 a base X (Utilizzo della pila)
Pagine ASP parte 2 La gestione dei file Stefano Schacherl.
ESERCITAZIONE 12 ESERCIZIO 2 14/05/2014. Consegne 1/4 Definire la classe MyBufferedReader che estende la classe BufferedReader, implementando il metodo.
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Argomenti della lezione
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
Input-Output 16 Maggio Nei programmi sviluppati sino ad oggi abbiamo usato * output su schermo (con System.out.print e System.out.print ) * input.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Sistemi di elaborazione dell’informazione Modulo 4 - Tecniche di programmazione distribuita Unità didattica 1 - Socket library Ernesto Damiani Lezione.
Esercitazione sull’ ordinamento 20 maggio 2003
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione può.
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
1 Input / Output Spesso un programma deve acquisire dati da una sorgente esterna o inviare informazioni a una destinazione esterna. L’informazione puo’
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Lezione 14 Tecniche di I/O Avanzate Obiettivi di apprendimento: A.Come lavorare con stream binari B.Lavorare con I datalog files C.Vantaggi e svantaggi.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Transcript della presentazione:

Java Stream e File

Il concetto di flusso (stream) Un flusso (stream) è inteso come sequenza continua e monodirezionale di informazioni che transitano da un’entità a un’altra Un programma costituisce la sorgente o la destinazione di un flusso L’altra estremità può essere un altro programma, un file su disco, lo schermo, la tastiera …

Stream: un esempio Nel caso di un programma che legge informazioni da un file su disco: Il file costituisce la sorgente dello stream unidirezionale Il programma costituisce la destinazione

Classi Java per input / output Le classi per input/output sono contenute nel package java.io Sono una gerarchia di classi organizzate in una struttura di ereditarietà in cui le sottoclassi estendono e specializzano le funzionalità base

Struttura delle classi Stream binari InputStream OutputStream Stream testuali Reader Writer

InputStream Classe astratta Opera su sequenze di byte Offre metodi per leggere i singoli byte Tutti i metodi possono lanciare IOException

InputStream - Metodi principali (1) int read() Attende il prossimo byte, dopodiché ne restituisce il valore (0-255) Restituisce -1 se il flusso è terminato int available() Restituisce il numero di byte leggibili senza attesa

InputStream - Metodi principali (2) long skip(long n) Salta i prossimi “n” byte dal flusso, se esistono Ritorna il numero di byte scartati void close() Chiude il flusso e rilascia le risorse di sistema associate

FileInputStream (sottoclasse di InputStream) Permette di leggere il contenuto di un file Parametro del costruttore Deve esistere ed essere leggibile Lettura sequenziale Dall’inizio alla fine

FileInputStream (esempio) FileInputStream fis; String filename= “prova.dat”; try { fis= new FileInputStream(filename); int i; while ( (i=fis.read()) != -1) { byte b= (byte) i; //Opera sul dato… } } finally { fis.close();

Classi filtro InputStream offre funzionalità minimali: Classi “filtro” Permette solo di leggere byte Classi “filtro” Arricchiscono le funzionalità o le prestazioni, interponendosi ad altre sorgenti o filtri Richiedono un InputStream da cui prelevare i dati Deve essere passato nel costruttore Trasformano i dati letti da tale flusso Conversione di formato, memoria tampone, reinserimento …

Classi filtro BufferedInputStream bis; bis=new BufferedInputStream( new FileInputStream(“file.dat”) ); byte b=bis.read(); b=bis.read(); File InputStream read() … File

Esempio BufferedInputStream BufferedInputStream bis; bis=new BufferedInputStream( new FileInputStream(“file.dat”) ); byte b=bis.read(); b=bis.read(); Buffered InputStream read() … File InputStream read() … File is buf count byte[]

BufferedInputStream BufferedInputStream e BufferedOutputStream non offrono metodi differenti Migliorano l’efficienza bufferizzando gli accessi al file

DataInputStream DataInputStream e DataOutputStream forniscono metodi per la lettura di ogni tipo di dato int, double, String …

ObjectInputStream Con ObjectInputStream e ObjectOutputStream è possibile leggere e scrivere oggetti di classi serializzabili Una classe è serializzabile se implementa l’interfaccia Serializable Java.io.Serializable è un’interfaccia senza metodi

Reader Writer Classi per la lettura dei file di testo Usiamo per semplicità le classi che operano sui byte (derivate da InputStream OutputStream) anche per operare con i file di testo

File ad accesso casuale In alcune situazioni occorre operare su un file, procedendo in modo non sequenziale Lettura e scrittura possono avvenire in qualsiasi posizione del file indipendentemente dall’operazione precedente La classe RandomAccessFile modella il file come fosse un array di byte Memorizzato su disco, invece che in memoria Mantiene un puntatore di posizione interno che tiene traccia del prossimo byte a cui accedere Modificabile dal programmatore È possibile operare sia in lettura che in scrittura Si specifica in fase di costruzione

File ad accesso casuale DataInput DataOutput RandomAccessFile read( ) write( ) seek( pos ) … File File pos Posizione in cui avverrà la prossima operazione

Operare in lettura void seek(long pos) long getFilePointer( ) Posiziona il puntatore interno a pos byte dall’inizio del file long getFilePointer( ) Restituisce la posizione corrente del puntatore interno rispetto all’inizio del file String readLine( ) Legge una sequenza di caratteri ASCII terminata da newline e la converte in formato Unicode String readUTF( ) Legge una sequenza di caratteri Unicode codificati nel formato UTF-8 (che contiene la lunghezza della stringa) Altri metodi dell’interfaccia DataInput Permettono di leggere tipi elementari (numeri interi, numeri in virgola mobile, caratteri e booleani)

Operare in scrittura void writeBytes(String s) Scrive la sequenza di byte meno significativi corrispondenti ai caratteri contenuti in “s” void writeChars(String s) Scrive la sequenza di caratteri (due byte ciascuno) contenuti in “s” void writeUTF(String s) Scrive la rappresentazione della stringa “s” nel formato UTF-8 Altri metodi dell’interfaccia DataOutput Permettono la scrittura di dati elementari