

















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica sull'input/output in java, con particolare attenzione ai canali standard di input e output (system.in, system.out, system.err) e al package java.io. Vengono illustrate le classi per l'accesso al file system, come file, e le classi per la lettura e scrittura di dati, inclusi stream di byte e classi come datainputstream e dataoutputstream. Inoltre, vengono presentati esempi di programmi che scrivono e leggono dati da file, e programmi che comunicano tramite socket. Infine, vengono descritte le classi inputstreamreader, filereader, outputstreamwriter, filewriter e printwriter per la gestione dei caratteri.
Tipologia: Appunti
1 / 25
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


















Ad ogni programma in esecuzione sono associati 1 canale di input e 2 canali di output:
Il package java.io include classi, interfacce ed eccezzioni per la gestione I/O. Distinguiamo tra due famiglie di funzionalità:
La classe fondamentale per accedere alle informazioni relative ai file ed alle directory è la classe File. è fondamentale tenere presenti i problemi di portabilità del codice, perchè si presentano in maniera differente:
costruire
Distinguiamo tra:
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.
Classe astratta che racchiude tutti i metodi per la lettura da uno stream di byte. è la radice di una gerarchia di classi usate per leggere gli stream di byte. Metodi principali:
le principali sottoclassi sono:
Fornisce metodi per leggere i diversi tipi base del linguaggio java da un InputStream esistente. Sfrutta lo standard UniCode per leggere i dati in maniera indipendente dalla piattaforma. Principali metodi: readBoolean, readByte, readInteger, readShort, readLong, readFloat, readDouble, readChar, readUnsignedByte, readUnsignedShort Di solito si leggono dati scritti con metodi della classe DataoutputStream.
Classe astratta che racchiude tutti i metodi per la scrittura di uno stream di byte. è la radice di una gerarchia di classi. Metodi principali:
le principali sottoclassi sono:
Fornisce metodi per scrivere i diversi tipi base del linguaggio Java su un OutputStream esistente.
import java.io.*; //il package io import java.util.Random; //Per generare //numeri casuali public class Scrivi { private static final int MAX = 100; //genera numeri casuali interi tra 0 e 100 public static void main(String[] args) throws IOException { // 1. Verifica presenza argomento if(args.length != 1) { System.err.println("Uso: scrivi
". Si tratta di " + num); dOut.writeInt(num); } //6. Chiude lo stream dOut.close(); } }
import java.io.*; //il package di io public class Leggi { public static void main(String[] args) throws IOException { // 1. Verifica presenza argomento if(args.length != 1) { System.err.println("Uso: leggi
◦ Chiede la connessione;
import java.io.; //il package io import java.util.Random; //Per generare numeri casuali import java.net.; public class ScriviSocket { private static final int MAX = 100; private static final String host = "localhost"; public static void main(String[] args) throws IOException, InterruptedException { // 1. Istanzia InetAddress InetAddress addr = InetAddress.getByName(host); // 2. Istanzia Socket Socket s = new Socket(addr, LeggiSocket.port); // 3. Apre il DataOutput Stream DataOutputStream dOut = new DataOutputStream(s.getOutputStream()); //4. Genera un numero casuale, lo stampa // su stdout e lo scrive sul Socket per 10 volte Random rG = new Random(); for(int i=1; i<11; i++) {
int num = rG.nextInt(MAX); System.out.println("Generato numero casuale "+ i + ". Si tratta di " + num); dOut.writeInt(num); } //5. Chiude lo stream e il socket dOut.close(); s.close(); } }
import java.io.; //il package di io import java.net.; //il package di rete public class LeggiSocket { public static final int port = 10001; public static void main(String[] args) throws IOException { // 1. Istanzia il ServeSocket ServerSocket server = new ServerSocket(port); try {
caratteri.
Classe astratta che racchiude tutti i metodi per la lettura di uno stream di caratterti. Metodi principali:
Costituisce il ponte tra gli stream di byte e quelli di caratterit. Effettua la conversione da byte a caratteri in maniera dipendente dal particolare "encoding" adottato. Costruttore principale:
Usata per l'accesso seqeunziale a file di caratteri. Ridefinsice i metodi della classe InputStreamReader fornendo una implemnetazione specifica per i file di caratterti.
Costruttori:
Si tratta della superclasse di tutet le classi che forniscono funzionalità di filtro su stream di caratteri. Si appoggia ad un Reader esistente. Fornisce tutti i metodi della classe reader.
Sfritta un buffer interno per ottimizzare la lettura. Si appoggia d un reader esistente. Fornisce prestazioni decisamente superiori al classico Reader. Metodi aggiunti:
Classe astratta che racchiude tutti i metodi per la scrittura in uno stream di caratteri.
Un programma che legge un file di testo e stampa a video solo le linee contenenti una certa stringa passata come parametro (grep).
import java.io.*; public class grep { public static void main(String[] args) throws IOException { // 1. verifica gli argomenti if(args.length != 2) { System.err.println("Uso: grep