Accedi ai file direttamente in Java

Accedi ai file direttamente in Java: un po’ di teoria

La classe RandomAccessFile in Java fornisce un accesso casuale a un file. Ciò significa che è possibile leggere e scrivere dati in qualsiasi punto del file, non solo dall’inizio.

  • La classe RandomAccessFile è un’implementazione del modello di accesso casuale ai file. Ciò significa che consente di accedere a qualsiasi punto di un file in modo efficiente.
  • La classe RandomAccessFile è basata su un buffer. Ciò significa che i dati vengono letti e scritti in blocchi di dati, invece che byte per byte.
  • La classe RandomAccessFile è thread-safe. Ciò significa che può essere utilizzata da più thread contemporaneamente senza conflitti.

Dimensioni delle variabili in Java

In Java, le variabili sono memorizzate in memoria heap. La dimensione di una variabile in memoria heap è determinata dal tipo di dati della variabile.

  • Tipi di dati primitivi
    • byte – 8 bit
    • short – 16 bit
    • int – 32 bit
    • long – 64 bit
    • float – 32 bit
    • double – 64 bit
    • char – 16 bit
  • Tipi di dati oggetti
    • String –
    • Date – 8 byte
    • Locale – lunghezza variabile

Creazione di un oggetto RandomAccessFile

Per creare un oggetto RandomAccessFile, è necessario specificare il nome del file e il modo in cui si desidera accedere al file.

RandomAccessFile file = new RandomAccessFile("myfile.dat", "rw");

Il modo in cui si desidera accedere al file può essere uno dei seguenti:

  • r: lettura
  • w: scrittura
  • rw: lettura e scrittura

Scrittura in un file

Per scrivere dati in un file, è possibile utilizzare i metodi write()writeUTF()writeInt() e writeChar().

  • write(): scrive un byte alla volta
  • writeUTF(): scrive una stringa codificata UTF-8
  • writeInt(): scrive un numero intero
  • writeChar(): scrive un carattere
file.write(1); // scrive un byte
file.writeUTF("Hello, world!"); // scrive una stringa
file.writeInt(10); // scrive un numero intero
file.writeChar('a'); // scrive un carattere

Lettura da un file

Per leggere dati da un file, è possibile utilizzare i metodi read()readUTF()readInt() e readChar().

  • read(): legge un byte alla volta
  • readUTF(): legge una stringa codificata UTF-8
  • readInt(): legge un numero intero
  • readChar(): legge un carattere
int b = file.read(); // legge un byte
String str = file.readUTF(); // legge una stringa
int n = file.readInt(); // legge un numero intero
char c = file.readChar(); // legge un carattere

Accedi ai file direttamente in Java: lettura e scrittura

import java.io.RandomAccessFile;

public class Example {

    public static void main(String[] args) throws IOException {
        RandomAccessFile file = new RandomAccessFile("myfile.dat", "rw");

        // Scrivi un numero intero
        file.writeInt(10);

        // Scrivi una stringa
        file.writeUTF("Hello, world!");

        // Scrivi un carattere
        file.writeChar('a');

        // Scrivi un altro numero intero
        file.writeInt(20);

        file.close();

        // Leggi un numero intero
        int n = file.readInt();

        // Leggi una stringa
        String str = file.readUTF();

        // Leggi un carattere
        char c = file.readChar();

        // Leggi un altro numero intero
        int n2 = file.readInt();

        System.out.println(n); // 10
        System.out.println(str); // Hello, world!
        System.out.println(c); // a
        System.out.println(n2); // 20
    }
}

Questo codice scrive i seguenti dati in un file:

10
Hello, world!
a
20

Poi legge i dati dal file e stampa i valori come segue:

10
Hello, world!
a
20

Link utili

La mia repository GitHub sul linguaggio Java

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »