Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
STATEMENTS IN DETTAGLIO
Gestione delle try - ci consente di definire un blocco di codice che proverà ad essere eseguito;
catch - ci consente di definire un blocco di codice per gestire le eccezioni che verrà eseguito nel caso in cui venga sollevata una determinata eccezione;
finally - opzionale, ci consente di definire un blocco di codice che verrà eseguito sempre e comunque dopo il blocco try/catch, con o senza eccezioni Try..catch sollevate nel blocco try.
La vera e propria fase di gestione dell'eccezione viene svolta dal blocco di codice dello statement catch.
Sintassi del costrutto Try..Catch:
try { // Blocco di codice da provare } catch(Exception e) { // Blocco di codice per gestire l'eventuale eccezione }
public class Prova { public static void main(String[] args) { int[] numeri = {1, 2, 3}; System.out.println(numeri[10]); // errore } }
Eccezioni non gestite, l'output sarà un'...
eccezionejava.lang.ArrayIndexOutOfBoundsException.
<pre>
<code>
public class Prova {
public static void main(String[] args) {
try {
int[] numeri = {1, 2, 3};
System.out.println(numeri[10]);
} catch (Exception e) {
System.out.println("C'è stato qualche problema.");
}
}
}
</code>
</pre>
<pre>
<code>
public class Prova {
public static void main(String[] args) {
try {
int[] numeri = {1, 2, 3};
System.out.println(numeri[10]);
} catch (Exception e) {
System.out.println("C'è stato qualche problema.");
} finally {
System.out.println("Eccezioni gestite con Try..catch");
System.out.println("Ho completato il blocco Try-Catch");
}
}
}
</code>
</pre>
Il throw statement viene usato in combinazione
<pre>
<code>
Gestione delle con un tipo di eccezione come ad esempio:
ArithmeticException, FileNotFoundException,
ArrayIndexOutOfBoundsException, SecurityException, ecc.
La sintassi è la seguente:
Sollevare eccezioni con il throw new
</code>
</pre>
Exception("Messaggio di errore");
Throw statement
public class Prova {
static void controllaEta(int anni) {
if (anni < 18) {
throw new ArithmeticException("Accesso negato: per accedere deve essere maggiorenne.");
} else {
System.out.println("Accesso consentito, sei abbastanza vecchio!");
}
}
Sollevare eccezioni con il Throw statement
public static void main(String[] args) {
controllaEta(14); // anni = 14 , 14 < 18 -> verrà sollevata l'eccezione
}
}
Gestione dei file
La possibilità di gestire i file, anche detta filehandling, è di fondamentale importanza per moltissime applicazioni.
Java offre molti metodi per la creazione, lettura, modifica, aggiornamento e eliminazione dei file.
Per poter sfruttare tutti i metodi di gestione del file usiamo la classe File inclusa nel package java.io.
Per usare la classe File, creiamo un oggetto della classe specificandone il nome (filename) o il percorso dove si trova il file.
import java.io.File;
// Importiamo la classe File
File f1 = new File("prova.txt"); // abbiamo creato un nuovo file di testo
// La classe File offre molti metodi per svolgere fondamentalmente:
// - creazione/scrittura file
// - lettura file
// - eliminazione file
// Queste operazioni sono considerate le operazioni di base sui file.
// Metodi:
// - canRead()
// Testa se il file è leggibile o meno;
// - canWrite()
// Testa se il file è accessibile in scrittura per effettuare modifiche;
// - createNewFile()
// Crea un nuovo file vuoto;
// - delete()
// Elimina un file;
// Metodi:
// - exists()
// Controlla se il file esiste;
// - getName()
// Ottiene il nome del file;
// - getAbsolutePath
// Ottiene il percorso completo del file;
// - length
// Ottiene le dimensioni del file espresse in byte;
// Metodi:
// - list()
// Ottiene un array dei file nella directory;
// - mkdir()
// Gestione dei file Abbreviazione di "make directory", crea una nuova cartella (directory).
// Per creare un
nuovo file in Java, possiamo utilizzare il metodo createNewFile() che ritorna true se la creazione ha esito positivo, false in caso di esito negativo se il file esiste già. Se durante la creazione del file occorre qualche errore, verrà sollevata un'eccezione di input/output detta IOException: è buona norma inglobare la creazione del file all'interno di un blocco try..catch.
import java.io.File; // Importiamo la classe File import java.io.IOException; // Importiamo la classe IOException per la gestione degli errori public class CreaFile { public static void main(String[] args) { try { File f1 = new File("prova.txt"); if (f1.createNewFile()) { System.out.println("File creato: " + f1.getName()); } else { System.out.println("File già esistente."); } } catch (IOException e) { System.out.println("C'è stato un errore nella creazione del file."); } } }
<html>
<head>
<title>Gestione dei file</title>
</head>
<body>
<h2>Creazione del file</h2>
<p>Per creare un nuovo file in una directory specifica, specifichiamo il percorso del file e utilizziamo il doppio backslash (\\) come nel seguente esempio:</p>
<pre>
<code>
File f1 = new File("C:\\Users\\Utente\\prova.txt");
</code>
</pre>
<h2>Scrittura su un file</h2>
<p>Per scrivere su un file abbiamo a disposizione 3 strumenti da utilizzare insieme:</p>
<ul>
<li>Classe FileWriter: è la classe del package java.io che consente di scrivere dati su un file.</li>
<li>Metodo write(): è il metodo della classe FileWriter che si occupa di scrivere il testo nel file.</li>
<li>Metodo close(): è il metodo della classe FileWriter che si occupa di chiudere il file portando a termine l'operazione di scrittura dei dati.</li>
</ul>
<pre>
<code>
// Importiamo la classe FileWriter
import java.io.FileWriter;
// Importiamo la classe IOException per gestire eccezioni
import java.io.IOException;
</code>
</pre>
</body>
</html>
public class Main {
public static void main(String[] args) {
try {
FileWriter scrittore = new FileWriter("prova.txt");
scrittore.write("buongiorno!");
scrittore.close();
System.out.println("Scrittura sul file avvenuta con successo.");
} catch (IOException e) {
System.out.println("C'è stato un errore nella scrittura sul file.");
e.printStackTrace();
}
}
}
Per leggere i contenuti di un file con Java possiamo utilizzare la classe Scanner presente nel package java.util. Possiamo utilizzare ciclicamente il metodo nextLine() della classe Scanner per ottenere il valore testuale di ogni riga del file, nextInt() per ottenere il valore numerico intero, nextDouble() per il valore numerico decimale ecc. Il metodo hasNextLine() controlla se esiste una riga successiva a quella correntemente analizzata. Il tipo di ciclo più adatto per ottenere ogni riga del file è il ciclo iterativo precondizionato (while), come vedremo tra poco.
// Codice per la lettura del file
<pre><code>Importiamo la classe File import java.io.File; Gestione dei file // importiamo la classe FileNotFoundException import java.io.FileNotFoundException; Lettura //importiamo la classe Scanner per leggere file #1 step import java.util.Scanner; public class LeggiFile { public static void main(String[] args) { try { File f1 = new File("prova.txt"); Gestione dei file Scanner lettore = new Scanner(f1); while (lettore.hasNextLine()) { Lettura String riga = lettore.nextLine(); System.out.println(riga); } #2 step lettore.close(); } catch (FileNotFoundException e) { System.out.println("C'è stato un errore nella lettura del file."); e.printStackTrace(); } } } import java.io.File; // Importiamo la classe File public class InfoFile { public static void main(String[] args) { File f1 = new File("prova.txt"); if (f1.exists()) { Gestione dei file System.out.println("Nome del file: " + f1.getName()); System.out.println("Percorso : " + f1.getAbsolutePath()); Ottenere } } } </code></pre>
info sul file System.out.println("Abilitato alla scrittura: " + f1.canWrite()); System.out.println("Abilitato alla lettura " + f1.canRead()); System.out.println("Dimensione file in bytes " + f1.length()); } else { System.out.println("Il file non esiste."); } } Per eseguire le operazioni di lettura e scrittura sui file con Java, sono disponibili oltre a FileWriter e Scanner anche molte altre classi come FileReader, BufferedReader, Files, Scanner, FileInputStream, FileWriter, BufferedWriter, FileOutputStream, etc. Per eliminare un file in Java, utilizziamo il metodo delete() della classe java.io.File come nel seguente esempio: import java.io.File; // Importiamo la classe File public class EliminaFile { public static void main(String[] args) { File f1 = new File("prova.txt"); // Gestione dei file Eliminazione if (f1.delete()) { System.out.println("Cancellato il file: " + f1.getName()); } else
{System.out.println("Eliminazione del file fallita.");} } }Per eliminare una cartella in Java, utilizziamo il metodo delete()della classe java.io.File come nel seguente esempio:decimale arrotondato all'intero più vicino. - Math.sqrt() ritorna la radice quadrata (square root) di un dato numero; - Math.pow() ritorna il valore elevato a potenza (power) di un dato numero; La classe Math - Math.sin() r
import java.io.File; // Importiamo la classe File public class EliminaCartella { public static void main(String[] args) { File folder = new File("C:\\Users\\Utente\\Cartella"); if (folder.delete()) { System.out.println("Cancellato il file: " + folder.getName()); } else { System.out.println("Eliminazione della cartella fallita."); } } }
La classe Math La classe Math è già implementata nativamente nel linguaggio Java(java.lang.Math) e permette di eseguire tantissime operazioni matematiche, includendo metodi come: - Math.abs() ritorna il valore assoluto di un dato numero; - Math.max() ritorna il valore massimo tra due numeri; - Math.min() ritorna il valore minimo tra due numeri; - Math.round() ritorna il valore di un numero arrotondato all'intero più vicino.