CodeGym
Promozione
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Lettura di file di testo: riga per riga, interamente

    JAVA 25 SELF
    Livello 36,Lezione 1
    In questa lezione esaminiamo la lettura riga per riga con BufferedReader e la lettura completa tramite Files.readAllLines/ Files.readString, la scelta del buffer (ad esempio, 8192 byte), la chiusura sicura delle risorse con try-with-resources, nonché la gestione delle codifiche ( StandardCharsets.UTF_8). Sono mostrati esempi pratici (conteggio delle righe, ricerca nei log, parsing della configurazione) ed errori tipici (ad esempio, OutOfMemoryError quando si caricano interamente file di grandi dimensioni).
    Disponibile
  • Lettura e scrittura di file binari: InputStream, OutputStream

    JAVA 25 SELF
    Livello 36,Lezione 2
    Analizziamo la differenza tra file di testo e file binari, i flussi di byte di base InputStream/ OutputStream e le loro implementazioni per file ( FileInputStream, FileOutputStream). Scriviamo una copia con buffer, discutiamo la velocità di lettura byte per byte vs a blocchi, la scrittura di array di byte tramite write(), le particolarità di try-with-resources, la scelta della dimensione del buffer 4– 16 KB, l’uso sicuro di readAllBytes() e gli errori tipici (ad esempio l’uso di FileReader/ FileWriter per dati binari).
    Disponibile
  • DataInputStream, DataOutputStream: lavoro con i tipi primitivi

    JAVA 25 SELF
    Livello 36,Lezione 3
    In questa lezione analizziamo l’I/O binario in Java con DataInputStream e DataOutputStream: come scrivere e leggere primitivi ( int, double, boolean) e stringhe ( String) con i metodi writeXXX/ readXXX, perché l’ordine è importante, come memorizzare array, quando ha senso aggiungere BufferedInputStream/ BufferedOutputStream e quali errori tipici portano a IOException o EOFException.
    Disponibile
  • Lavorare con try-with-resources: chiusura automatica delle risorse

    JAVA 25 SELF
    Livello 36,Lezione 4
    Analizziamo il modo moderno e sicuro di lavorare con le risorse in Java — try-with-resources: confronto con il vecchio pattern try/ catch/ finally + close(), requisiti per i tipi (che implementano AutoCloseable o Closeable), sintassi try(...){...}, ordine di chiusura, eccezioni «soppresse» tramite getSuppressed(), esempi con flussi di I/O e risorse personalizzate, oltre a consigli ed errori tipici.
    Disponibile
  • Che cos'è una codifica e a cosa serve

    JAVA 25 SELF
    Livello 37,Lezione 0
    Analizziamo che cos'è una codifica e perché senza di essa i testi al computer si trasformano in «mojibake». Confrontiamo i set più diffusi: UTF-8, Windows-1251, ASCII, Unicode/ UTF-16. Discutiamo la rappresentazione interna delle stringhe nella JVM ( String in Unicode) e il corretto input/output: specifica esplicita della codifica tramite InputStreamReader/ OutputStreamWriter e StandardCharsets.UTF_8. In chiusura — esempi pratici ed errori tipici.
    Disponibile
  • Codifiche principali: UTF-8, UTF-16, ISO-8859-1

    JAVA 25 SELF
    Livello 37,Lezione 1
    Analizziamo tre codifiche di base con cui si imbatte uno sviluppatore Java: che cos’è UTF-8 (lo standard per il web e la maggior parte dei formati), come è fatto il formato interno delle stringhe nella JVM — UTF-16 (con coppie surrogate e BOM), e perché si incontra ancora ISO-8859-1. Spieghiamo la compatibilità con ASCII, la dimensione in byte per carattere e mostriamo il modo corretto di lavorare con le codifiche in Java tramite StandardCharsets, Files.write, Files.readString, Paths.get. In chiusura — errori tipici: lettura/scrittura errata, codifica di sistema “predefinita”, confusione tra UTF-16/ UTF-8.
    Disponibile
  • Impostazione della codifica durante la lettura/scrittura dei file

    JAVA 25 SELF
    Livello 37,Lezione 2
    Come evitare i «mojibake» e fare in modo che il testo appaia uguale su tutte le macchine: analizziamo la codifica di sistema ( "file.encoding"), il lavoro con Charset e le costanti StandardCharsets, leggiamo/scriviamo tramite Files . newBufferedReader e Files . newBufferedWriter, usiamo try-with-resources, vediamo le codifiche disponibili e seguiamo le migliori pratiche (per impostazione predefinita — "UTF-8"). Alla fine — errori tipici e come evitarli.
    Disponibile
  • Problemi di mancata corrispondenza delle codifiche, errori tipici

    JAVA 25 SELF
    Livello 37,Lezione 3
    In questa lezione analizziamo «krakoziabry», la perdita di caratteri ( ?), eccezioni come MalformedInputException, le cause (mancata corrispondenza tra Windows-1251/ UTF-8, codifica di sistema «predefinita», BOM), la diagnostica ( file.encoding) e le best practice: specifica esplicita di Charset, uso di Files/ BufferedReader con StandardCharsets, rinuncia a FileReader/ FileWriter, sfumature per XML/ JSON e BOM.
    Disponibile
  • Ricodifica dei file: lettura in una codifica, scrittura in un'altra

    JAVA 25 SELF
    Livello 37,Lezione 4
    Come leggere correttamente il testo da un file in una codifica e scriverlo in un'altra utilizzando le classi di java.nio.file e java.io: usiamo Files.newBufferedReader/ Files.newBufferedWriter oppure InputStreamReader/ OutputStreamWriter, specifichiamo il Charset necessario, applichiamo try-with-resources ed evitiamo le trappole della codifica di sistema. Algoritmo passo‑passo, esempio Windows-1251 → UTF-8, sfumature (BOM, file grandi, eccezioni) ed errori tipici.
    Disponibile
  • IOException e FileNotFoundException: gestione degli errori

    JAVA 25 SELF
    Livello 38,Lezione 0
    Come è organizzata la gerarchia delle eccezioni di I/O in Java, qual è la differenza tra IOException e la sua sottoclasse FileNotFoundException, quando si verificano e come gestirle correttamente. Vedremo l’ordine dei blocchi catch, la pratica di lettura/scrittura di file, consigli di logging e una tabella sintetica degli errori più comuni. Tratteremo le eccezioni checked, le parole chiave try, catch, finally, throws e il pattern try-with-resources.
    Disponibile
  • Verifica dell'esistenza di file e directory

    JAVA 25 SELF
    Livello 38,Lezione 1
    Come verificare in Java se esiste un file o una cartella: la classe File con i suoi metodi exists(), isFile(), isDirectory() e l'approccio moderno NIO tramite Path e Files — Files.exists(), Files.isRegularFile(), Files.isDirectory(). Discuteremo il problema TOCTOU e perché il controllo non sostituisce la gestione degli errori: anche dopo exists() potete ottenere FileNotFoundException o AccessDeniedException, quindi usate sempre i blocchi try e, quando possibile, try-with-resources. Inoltre pratica: lettura del file se presente, creazione di una directory con Files.createDirectory() e Files.createDirectories(), lavoro con percorsi relativi e assoluti.
    Disponibile
  • Gestione dei file danneggiati, ripristino dei dati

    JAVA 25 SELF
    Livello 38,Lezione 2
    Come riconoscere i file «corrotti» in base alle eccezioni ( EOFException, MalformedInputException, ZipException, StreamCorruptedException), cosa fare in caso di mancata corrispondenza del formato e quali strategie di ripristino adottare: logging e notifica all’utente, lettura parziale fino all’errore, copie di backup, checksum ( SHA-256). Pratica con la lettura fino a EOF, gestione corretta delle codifiche e analisi degli errori tipici (validazione, try-with-resources, riscrittura accurata).
    Disponibile
  • 1
  • ...
  • 16
  • 17
  • 18
  • 19
  • 20
  • ...
  • 30
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym